我有一个表示范围的字符串range
,例如:
"7-35"
我正在寻找一种简单的方法将其拆分为两个整数int begin
和int end
。
我已经看到了this和this,但实际上我正在搜索某种“一行”命令。如果有的话。
这实际上与做法相反:
sprintf(range,%d-%d,start,end);
答案 0 :(得分:2)
与打印相反的是扫描,您可以使用sscanf()
:
unsigned int start, end;
if(sscanf(range, "%u-%u", &start, &end) == 2)
printf("start=%u, end=%u\n", start, end);
一些注意事项:
unsigned int
和%u
使嵌入式短划线非围兜答案 1 :(得分:1)
您可以使用sscanf():
char *ptr = "7-35";
int i,j;
sscanf(ptr, "%d-%d", &i, &j);
答案 2 :(得分:0)
#include <stdio.h>
int main (){
char sentence []="789-35";
int start;
int end;
sscanf (sentence,"%d %*c %d",&start,&end);
printf ("start:%d\nend: %d\n",start,end);
return 0;
}
我测试了这个片段。它工作正常
答案 3 :(得分:0)
印刷的反面是什么?扫描!
使用sscanf
sscanf(range,"%d %d", &start, &end);