您好,我正在编写一个程序,它需要使用一个函数来遍历一个数组,并选择具有大写字母M的索引号,然后返回该索引号,并且只在第一次出现大写字母M时返回。如果找不到大写字母M,则返回值-1。这是我目前所拥有的(我可能会在左外野与这个,因为我是新的职能)。
#include <stdio.h>
int findM (char string[], int numVals){
int i = 0;
int indexM;
for (i = 0; i < numVals; ++i){
if (string[i] == 'M'){
indexM = string[i];
break;
}
else {
indexM = -1;
}
}
return indexM;
}
int main(void) {
char userString [15] = "M as in Mancy";
printf("%d",findM(userString, 15));
return 0;
}
在这个例子中,预期的结果是0,因为这个字符串的第一个元素是大写的M,但是,编译和运行时,我的结果是77。谢谢你们的帮助!
最佳答案
之所以这样做,是因为要在index M变量中插入M的ASCI值,但是应该保留该字符M的索引,对吧?因此,请在findM函数中执行以下操作:
for (i = 0; i < numVals; ++i){
if (string[i] == 'M'){
indexM = i;
break;
}
else {
indexM = -1;
}
}
return indexM;
}
关于c - C语言的基本功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40211496/