我必须实现以下功能...
void replaceChar(char s[], char c,int len)
说明:将
s
的每个字符替换为c
。len
表示s
的长度。
我将此提交给我的班级使用的自动编程器,并且它告诉我“替换字符串的长度具有不同的长度。”我已经对此进行了广泛测试,并且没有看到任何问题。这是我的完整功能:
void replaceChar(char s[], char c, int len) {
printf("\n");
for (int i = 0; i < len; i++) {
s[i] = c;
printf("%c",s[i]);
}
}
我感谢你能给我的任何帮助!
以下是我的一些测试用例:
char s1[5] = {'h','e','l','l','o'};
char s3[10] = {'h','e','l','l','o',' ','h','i','i','i'};
char rep1 = 'x';
replaceChar(s1,rep1,5);
replaceChar(s3,rep1,10);
答案 0 :(得分:2)
请参阅my comment:
您是否尝试过明确标记NUL终止符?
s[len] = '\0';
虽然这可以纠正这个问题,但我仍然会与你的教授联系,并问他们为什么这是必要的。实验室未指定字符串s
需要以NUL终止。
作为旁白(最初在another of my comments中提到),您应该在初始化s1
和s3
时利用字符串文字,即
char s1[] = "hello";
char s3[] = "hello hiii";
这不仅看起来更清晰(并且不需要明确提及数组长度),而且还保证字符串也以NUL开头终止。