"123456\000\";\"Bilka\";\"Tilst afdelingen\";\"Ager\370vej 7\";\"Port 39\";\"8381\";\"Tilst\";\"25\";\"100\";\"125\";\"90\";\"Phi"
我需要获取第一个123456并将其存储为int,我该怎么做?
答案 0 :(得分:2)
使用atoi(3)
int n = atoi("123456\000\";\"Bilka\";\"Tilst afdelingen\";\"Ager\370vej 7\";\"Port 39\";\"8381\";\"Tilst\";\"25\";\"100\";\"125\";\"90\";\"Phi"
);
答案 1 :(得分:1)
使用strtol(),它比atoi()做错误报告更好。
答案 2 :(得分:1)
使用sscanf()
。
char *str = "123456\000\";\"Bilka\";\"Tilst afdelingen\";\"Ager\370vej 7\";\"Port 39\";\"8381\";\"Tilst\";\"25\";\"100\";\"125\";\"90\";\"Phi";
int num = 0;
sscanf(str, "%d", &num);
printf(" The extracted number is %d.\n", num);
答案 3 :(得分:0)
您可以使用atoi
或以下程序。但是不建议使用下面的程序,因为它不可移植,并假设机器使用acsii
字符集。
#include <stdio.h>
int atoi_1(char a[])
{
int n=0;
if (a[0] >= '0' && a[0] <= '9') {
n = a[0]-'0';
} else {
/* exception - a[0] is not an integer */
printf("exception - a[0] is not an integer \n");
}
return n;
}
int main()
{
char a[] = "123456\000\";\"Bilka\";\"Tilst afdelingen\";\"Ager\370vej 7\";\"Port 39\";\"8381\";\"Tilst\";\"25\";\"100\";\"125\";\"90\";\"Phi";
printf("a[0] = %d \n", atoi_1(a));
return 0;
}
输出:
$ gcc atoi.c
$ ./a.out
a[0] = 1
$