这些是详细信息。(https://i.stack.imgur.com/cMY9J.png)
#include <stdio.h>
#include <stdlib.h>
int maxdigit(char sir[]);
int main()
{
char s[100];
gets(s);
printf("The greatest digits is %i\n", maxdigit(s));
}
int maxdigit(char sir[])
{
int i, max = 0;
for(i=0;i<100;i++)
{
if(max<sir[i])
{
max = sir[i];
}
}
return max;
}
我真的不知道如何在一个字符串中只得到整数值来返回它,我怎么做才能使它不与字母的ascii代码进行比较呢?
2条答案
按热度按时间wvmv3b1j1#
这里有几个问题:
1.您的代码假定用户已输入所有100位数字。如果输入的数字少于100,则其他数字的内存未初始化,并且可能充满垃圾。当到达终止字符串的“\0”时,您需要停止。
1.要将ASCII码(数字)转换为数字的值,需要从ASCII码中减去“0”,但需要确保所有输入的数字都是数字,可以使用isdigit()。
qyswt5oh2#
1.迭代直到空终止字符。在代码中,如果字符串长度小于数组,则将超出字符串结尾
1.通过减去
0
将数字的char表示形式转换为整数值。