C 函数删除字符串中的元音不起作用?

标签 c string pointers

这是我删除字符串中元音的函数;

char *removeVowels(char *inString) {

    int count = 0; //to count the non vowel characters

    for (int i = 0; inString[i]; i++)
        if (inString[i] != 'a' || inString[i] != 'e' || inString[i] != 'u' || inString[i] != 'o' || inString[i] != 'i')
            inString[count++] = inString[i]; //if character is not a vowel placed at count++  

    inString[count] = '\0';

    return inString;
}

问题是它返回的是输入的原始字符串。有什么想法吗?

最佳答案

||&& 运算符之间存在混淆。您想要测试该字符是否不同于 'a' AND 不同于 'e' 等。

这是修改后的版本:

char *removeVowels(char *inString) {
    int count = 0; // index for preserved characters

    for (int i = 0; inString[i]; i++) {
        if (inString[i] != 'a' && inString[i] != 'e' && inString[i] != 'i'
        &&  inString[i] != 'o' && inString[i] != 'u') {
            inString[count++] = inString[i]; // copy the non-vowel character
        }
    }
    inString[count] = '\0';  // set the null terminator.

    return inString;
}

但请注意,此函数不会删除大写元音,并且 y 是否应被视为元音仍有待决定。

关于C 函数删除字符串中的元音不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49968214/

相关文章:

c - 有没有办法告诉链接器在加载共享对象时忽略 DT_SONAME?

c - 使用 C 从用户那里获取一些字符串输入

php - 用增量值替换字符串

javascript - 在 Javascript 中,如何在 "joined"数组周围加上单引号?

在 Windows 上找不到 syslog.h

用 execve 调用 ls

c++ - 在 dev c++ 中使用 strchr(),从 'char' 到 'int' 的无效转换 [-fpermissive]

C:向动态分配的数组添加元素

C 代码 - 猜谜游戏 - 函数问题

在函数内更改指针