-2

假设我有 char *p 并且 p 有短语“这并不容易”。最后以空值终止。我想通过 p 搜索,无论我在哪里遇到 's',我想在不删除任何其他字符的情况下输入“101”。所以对于这个例子,p 来自“这并不容易”。到“thi101 i101 不是 ea101y”。我也只能使用头文件 stdio.h、stdlib.h 和 string.h。

char q[] = "s";
char r[] = "101";
    for(int j = 0; s[j]!='\0'; j++){
        if(s[j]==q[0]){
            int temp = 0;
            s[j] = r[temp];
            temp++;
            int temp2 = j;
            while(temp<3){
                for(int k = length; k>j+1; k--){
                    s[k]=s[k-1];

                }
                s[j] = r[temp];
                temp++;
                j++;                    
            }
            j = temp2;
        }
    }
}

s 是我前面提到的字符串“这并不容易。”。

我目前得到的输出是“thi011 i011 not ea”,这是不正确的。

4

1 回答 1

1

首先确定“s”(1)和“101”(3)的长度。然后,将每次出现“s”后的所有字符移动3-1=2,并放入“101”。

当然,您必须确保字符串缓冲区足够大以进行操作。

于 2013-10-26T18:18:51.173 回答