作为我的家庭作业,我一直在尝试编写代码以从输入的字符串中删除单词。但是,事情是输出的“修改后的”字符串永远不会真正被修改,而实际上总是输出输入的字符串。我是字符串的新手,所以我对string.h库函数的工作方式不完全了解。
#include<stdio.h>
#include<string.h>
int main(void)
{
char str[60], strtemp[60], word[10], * token;
printf("Enter the sentence: ");
gets_s(str);
printf("Enter the word to be deleted: ");
gets_s(word);
int i = 0;
token = strtok(str, " ");
while (token != NULL) {
if (!i && token != word)
strcpy(strtemp, token);
else if (token == word) {
token = strtok(NULL, " ");
continue;
}
else {
strcat(strtemp, " ");
strcat(strtemp, token);
}
token = strtok(NULL, " ");
i++;
}
strcpy(str, strtemp);
printf("Modified string: %s \n", str);
}
答案 0 :(得分:0)
添加以下内容:
pip install --upgrade -e C:\Users\CZhou2\PycharmProjects\zhou_utils\
您应该使用char *strremove(char *str, const char *sub) {
size_t len = strlen(sub);
if (len > 0) {
char *p = str;
while ((p = strstr(p, sub)) != NULL) {
memmove(p, p + len, strlen(p + len) + 1);
}
}
return str;
}
(也写在帖子的评论上。)