1

这是实验室作业的一部分

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

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);
4

1 回答 1

2

我的评论

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

尽管这解决了问题,但我仍然会与您的教授联系并询问他们为什么首先需要这样做。实验室没有指定字符串s需要以 NUL 结尾。

顺便说一句(最初在我的另一个评论s1中提到),您应该在初始化and时利用字符串文字s3,即

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

这不仅看起来更简洁(并且避免了显式提及数组长度的需要),而且还保证了字符串也是以 NUL 结尾的。

于 2012-09-09T20:07:07.200 回答