下面是函数的代码:

void pattern(char word[200], char asPattern[200]) {
    for (unsigned i = 0; i < strlen(word); i++) { // unsigned to remove warning
        if (strchr("aeiou", word[i]) != 0) asPattern[i] = '*';
        else asPattern[i] = '#';
}

基本上,这个函数用#替换单词中的辅音,用*替换元音,并将新模式存储在asPattern字符串中。但是,如果我在屏幕上显示asPattern,它会显示正确的模式,后面跟着一堆未知的符号(strlen(asPattern)等于211或for循环之后的其他符号)。
我相信问题是阿斯帕特恩的结局没有被标记
asPattern[strlen(asPattern)]='/0'
我不知道还能做什么。。。
我不能用std::字符串,所以请容忍我并使用C字符串。

最佳答案

添加代码

asPattern[strlen(word)] = '\0';

在for循环之前或之后

关于c++ - 如何标记C字符串的结尾?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33372350/

10-11 15:17