Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 将字符串中的数字更改为int的函数_C_String_Function_If Statement_Int - Fatal编程技术网

C 将字符串中的数字更改为int的函数

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: 这很

我试图用c编写一个函数,将字符串中的数字改为整数。例如1比1。到目前为止,这是我的代码,但它无法正常工作,我找不到问题所在。

调用函数时没有使用函数的返回值:

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") );