更改strstr()指向的值; C

时间:2016-04-14 15:45:01

标签: c

我尝试制作一个程序,以便在我尝试将"hello how are you"更改为"hello bow are you"作为测试时,查找并替换字符串中的某些文字。

首先,我使用"how"找到char *substring = strstr(mystring, newstr); 它返回指向"(this position)how are you"的指针现在我不知道如何更改接下来的3个字母。我可以strlen(newstr)代替"how"替换(e.getSource() == cl)的字符串的长度,但我找不到从指针newstr开始更改mystring的方法。

2 个答案:

答案 0 :(得分:5)

通过下标子字符串来更改第一个字符。

substring[0] = 'b';

如果要替换多个字符,请尝试循环或使用memcpy。不要使用strcpy:你不希望复制NUL终结符。

memcpy(substring, "how", 3);

答案 1 :(得分:-2)

*substring = 'b';由用户EOF发布我的解决方案就是这样

for (int x = 0; x < strlen(newstring); x++){
    *substring++ = newstring[x];
}