急!c语言怎么把字符串转化为数字啊

img

img

img


不知道为什么老是报错 怎么才能把字符串转化为数字啊! 求指教滴滴

如果需要输入带空格的一行字符串,把scanf()函数改为gets()函数试试。

测试代码如下:

参考链接:


C 库函数 – gets() | 菜鸟教程 C 库函数 - gets() C 标准库 - <stdio.h> 描述 C 库函数 char *gets(char *str) 从标准输入 stdin 读取一行,并把它存储在 str 所指向的字符串中。当读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。 声明 下面是 gets() 函数的声明。 char *gets(char *str) 参数 str -- 这是指向一个字符数组的指针.. https://www.runoob.com/cprogramming/c-function-gets.html


#include <stdio.h> 
#include <stdlib.h>
#include <string.h>
// https://www.runoob.com/cprogramming/c-function-atoi.html

int change(char *s){

    int i = atoi(s);
    return i;
} 

int main(void){

    char S[120 ];
    // https://www.runoob.com/cprogramming/c-function-gets.html
    gets(S);
    char m[] = " ";
    char *b = strtok(S,m);
    char *c = strtok(NULL,m);
    int num = change(c);
    printf("b=%s,c=%s,%d\n",b,c,num);
    
    return 0;
    
}

img

在C语言中,可以使用

atoi()

函数将字符串转换为整数。例如,以下代码将字符串
str
转换为整数:

char str[] = "123";
int num = atoi(str);

如果字符串无法转换为整数,则

atoi()

函数将返回0。需要注意的是,如果字符串中包含非数字字符,则只会将数字字符转换为整数,而忽略其他字符。