Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.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语言中,如何将字符串的各个部分转换成不同的整数?_C - Fatal编程技术网

在C语言中,如何将字符串的各个部分转换成不同的整数?

在C语言中,如何将字符串的各个部分转换成不同的整数?,c,C,假设我以YYYY-MM-DD格式输入日期;例如: char date[10]; scanf("%s",&date); 我如何提取带有数字的部分,并将它们转换成整数,如 int年、月、日?使用strtol() 需要错误检查、验证,您需要11个字节用于“YYYY-MM-DD”。。。不要忘记'\0'不要将&与数组一起使用---scanf(“%s”,日期)将数组隐式转换为指向其第一个元素的指针:scanf needsIf正在处理的日期/时间信息,考虑POSIX是否可以使用。

假设我以YYYY-MM-DD格式输入日期;例如:

char date[10];
scanf("%s",&date);
我如何提取带有数字的部分,并将它们转换成整数,如
int年、月、日

使用
strtol()


需要错误检查、验证,

您需要11个字节用于
“YYYY-MM-DD”
。。。不要忘记
'\0'
不要将
&
与数组一起使用---
scanf(“%s”,日期)将数组隐式转换为指向其第一个元素的指针:scanf needsIf正在处理的日期/时间信息,考虑POSIX是否可以使用。在这种情况下,这可能有些过分,但在其他情况下可能会很有用,特别是当您还需要处理时间信息时。这也可能不是你的导师在这个练习中所想的。一个同等的问题(从字符串中读取数字)以前不是被问了一百次吗?
2019-06-17
char p[] = "2020-11-03";
char *q;
int n1 = strtol(p, &q, 10);
int n2 = strtol(q + 1, &q, 10);
int n3 = strtol(q + 1, 0, 10);