【发布时间】:2021-02-04 17:01:29
【问题描述】:
我一直在解决这个问题:
函数 - 删除 foo
编写一个程序,通过重复将每次出现的 'foo' 替换为 'oof' 来使用函数从输入字符串中重复删除子字符串 foo 的出现后找到新字符串。
功能详情请参考功能规范。
该函数接受一个指向字符串的指针。
void manipulate(char * a)输入输出格式:
输入由一个字符串组成。假设字符串中所有字符均为小写字母,字符串最大长度为100。
请参阅示例输入和输出以了解格式规范。
所有粗体字对应输入,其余对应输出。
示例输入和输出:
Enter the input string akhfoooo The output string is akhoooof函数定义:
void manipulate (char * a)
这是我的代码:
#include <stdio.h>
#include <string.h>
void manipulate (char *a){
int i;
char b[3]="foo";
for (i=0;i<strlen(a);i++){
if (strncmp(a+i,b,3)==0){
a[i]='o';
a[i+1]='o';
a[i+2]='f';
manipulate (a);
}
}
printf ("%s",a);}
int main(){
char string[50];
printf ("Enter the input string\n");
scanf ("%s",string);
manipulate (string);
return 0;
}
谁能告诉我如何编辑这段代码以提供正确的输出?
【问题讨论】:
-
'char b[3]="foo";' - 不是字符串。
-
您是否进行了任何调试,例如。如果找到匹配项,打印出 'i' 的值?
-
'please don't downvote rr close this question I beg you all please' 几乎可以保证拒绝和关闭投票,无论您的问题是否值得:(
-
你完全正确,关于这个完全相同的作业的另一个问题有不同的问题。您可以通过遵循关于如何询问简单调试问题的 SO 指南来避免该问题。至少,您应该同时呈现所需的行为和代码的行为,并说明它们的不同之处(如有必要)。如果问题集中在代码问题而不是编程任务上,那么它将与其他类似的代码问题进行比较,而不是与其他类似的任务进行比较。