我为一个函数写了几行代码,用" - "替换字符串中的所有空格。并打印字符串。代码编译,但是当它运行时,它打印"新字符串是0替换"。有人能告诉我我的代码出错了吗?我假设它与char传递给函数的方式有关。
//Ben Adamson
//v1.0
#include <stdio.h>
#include <conio.h>
void replace(char s)
{
int num = 0;
while (s != '\0')
{
if (s == ' ')
{
s = "-";
num++;
}
s++;
}
printf("New string is %c with %d replacements", s, num);
}
int main()
{
char str = "The cat sat";
replace(str);
_getch();
return 0;
}
答案 0 :(得分:0)
我找到了解决我所有代码问题的方法。请参阅以下代码:
//Ben Adamson
//v1.0
#include <stdio.h>
#include <conio.h>
#include <string.h>
void replace(char *s);
int main()
{
char str[] = "The cat sat";
replace(str);
_getch();
return 0;
}
void replace(char *s)
{
int num = 0;
unsigned int i;
for(i=0; i<strlen(s); i++)
{
if (s[i] == ' ')
{
s[i] = 45;
num++;
}
}
printf("New string is %s with %d replacements", s, num);
}