替换C中的字符

时间:2012-09-09 19:49:54

标签: c character-replacement

这是lab assignment

的一部分

我必须实现以下功能...

void replaceChar(char s[], char c,int len)
     

说明:s的每个字符替换为clen表示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);

1 个答案:

答案 0 :(得分:2)

请参阅my comment

  

您是否尝试过明确标记NUL终止符? s[len] = '\0';

虽然这可以纠正这个问题,但我仍然会与你的教授联系,并问他们为什么这是必要的。实验室未指定字符串s需要以NUL终止。

作为旁白(最初在another of my comments中提到),您应该在初始化s1s3时利用字符串文字,即

char s1[] = "hello";
char s3[] = "hello hiii";

这不仅看起来更清晰(并且不需要明确提及数组长度),而且还保证字符串也以NUL开头终止。