【问题标题】:Function to replace text in arrays C++替换数组C++中文本的函数
【发布时间】:2012-09-14 06:02:32
【问题描述】:

我遇到了问题。我需要创建一个名为 replaceText 的函数,用新文本替换目标文本。不包含空字符,如果没有找到目标文本,则没有文本替换。

参数是两个数组targetText[]和replacementText[]。这是一个作业,我不能使用 str。到目前为止,这是我的代码。

void SimpleString::replaceText(char targetText[], char replacementText[])
    {
        for ( int i = 0; i < MAX_LIST; i++)
        {
            if( replacementText[i] > MAX_LIST)
            {
                throw SimpleStringOverflowException("SimpleStringOverflowException: Resulting SImpleString too large.");
            }
        }
    }

【问题讨论】:

  • 使用 std::string 而不是 char 数组。好多了。
  • 也许我是唯一一个不明白的人,但我认为这是他的作业,我怀疑他是否可以使用 std::string 或 boost。
  • 有什么原因你不能只使用 string::replace 或者你应该使用 Homework 标签,因为你需要自己写?
  • “这是一个作业,我不能使用 str”。人,请阅读。
  • @Duck,homework 标签已弃用。

标签: c++ string function variable-assignment


【解决方案1】:

给你:

    void replace_text(char targetText[], char replacementText[])

{


    int i;
        if(strlen(replacementText) > 0 )
    {

        for(i=0;i<strlen(replacementText);i++)
        {           
            targetText[i] = replacementText[i];
        }
        for(i = strlen(replacementText) ; i < strlen (targetText) ; i++)
            targetText[i] = '\0';
    }

} 

我假设你可以使用 strlen....对吗?如果不让我知道...

【讨论】:

  • 使用 int sizeOfArray = sizeof(myArray) / sizeof(myArray[0]) 确定 char 数组的长度
  • 是的,我们可以使用 strlen。谢谢您的帮助。这让我走上了正轨。
【解决方案2】:

亲爱的,很简单,一个一个地分配字符。 即 targetText[i]=replacementText[i]
现在只需迭代 i 直到它结束替换文本或目标文本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多