[英](C language) Checking vowels in a String
我正在做元音检查器功能。 我对这门语言有些陌生。 我通读后,无法比较字符串文字和字符数组。 这是真的? 我的程序总是崩溃,我看不到问题出在哪里。 谁能向我解释为什么我的代码有问题。 感谢您的任何投入。
void checkVowel(char someString[]){
int i, len;
char compare;
len = strlen(someString);
printf("%d\n", len);
printf("you name in all uppercase: ");
printf(strupr(someString));
for(i=0; i<len;i++){
char compare = someString[i];
if(compare == "A" || (strcmp(compare,"E"==0))|| compare == "I" || compare == "O" || compare == "U"){
printf("\n%c", compare);
}
}
}
您可以在下面尝试,我没有运行代码,但我希望它可以工作:
void checkVowel(char someString[]){
int i, len;
char compare;
len = strlen(someString);
printf("%d\n", len);
printf("you name in all uppercase: ");
printf(strupr(someString));
for(i=0; i<len;i++){
char vowelArray[5] = [ 'A','E','I','O','U'];
char compare = someString[i];
int j;
for (j = 0 ; j < 5; j++){
if(compare == vowelArray[j]){
printf("\n%c", compare);
}
}
}
}
您正在使用strcmp将字符与C字符串进行比较,这将失败。 尝试执行此操作时,您应该已经看到编译器警告。 无需比较字符和单字符字符串,只需一次比较一个字符。 完全不需要使用strcmp。
请注意,使用strupr
是Microsoft提供的非标准弃用功能。 使用toupper
代替:
#include <ctype.h> // defines toupper and tolower
void checkVowel(char someString[]){
int i, len;
len = strlen(someString);
printf("%d\n", len);
printf("you name in all uppercase: ");
printf(strupr(someString));
for(i=0; i<len;i++) {
char compare = toupper(someString[i]));
if ((compare == 'A') ||
(compare == 'E') ||
(compare == 'I') ||
(compare == 'O') ||
(compare == 'U')) {
printf("\n%c", compare);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.