C 将字符串中的数字更改为int的函数
我试图用c编写一个函数,将字符串中的数字改为整数。例如1比1。到目前为止,这是我的代码,但它无法正常工作,我找不到问题所在。调用函数时没有使用函数的返回值:C 将字符串中的数字更改为int的函数,c,string,function,if-statement,int,C,String,Function,If Statement,Int,我试图用c编写一个函数,将字符串中的数字改为整数。例如1比1。到目前为止,这是我的代码,但它无法正常工作,我找不到问题所在。调用函数时没有使用函数的返回值: toint(array[i-1], lastval); 另外,C中的参数是按值传递的,这意味着对函数中参数的更改不会反映在调用函数中,因此不需要传递lastvar 更改函数以删除第二个参数: int toint(char value[10]){ int num = 0; ... 添加并将返回值分配给lastval: 这很
toint(array[i-1], lastval);
另外,C中的参数是按值传递的,这意味着对函数中参数的更改不会反映在调用函数中,因此不需要传递lastvar
更改函数以删除第二个参数:
int toint(char value[10]){
int num = 0;
...
添加并将返回值分配给lastval:
这很好:
char *numbers[] = {
"Zero", "One", "Two" ,"Three", "Four", "Five",
"Six", "Seven", "Eight", "Nine", "Ten"
};
int tonum( char *str ) {
for( int i=0; i<11; i++) {
if( !strcmpi( str, numbers[i]) ) return i;
}
return -1; // not found
}
strcmpi关注大小写的内容。你能提供关于什么不工作的详细信息吗?strcmp是区分大小写的。您确定所有字符的大小写都匹配吗?没有理由将num作为函数参数。它应该只是一个局部变量。到底是什么问题?你有错误吗?错误的结果?它没有按预期的方式工作,因为它没有返回正确的num值。因此,例如,value可能是7,num将返回为1,这就是为什么我猜测if语句存在问题的原因。此解决方案有效。这仍然不是我想要的,但我认为这是兰德这次的问题。
char *numbers[] = {
"Zero", "One", "Two" ,"Three", "Four", "Five",
"Six", "Seven", "Eight", "Nine", "Ten"
};
int tonum( char *str ) {
for( int i=0; i<11; i++) {
if( !strcmpi( str, numbers[i]) ) return i;
}
return -1; // not found
}
print( "%s is %d\n", "Seven", tonum("seven") );