将字符串拆分为两个整数

时间:2016-10-06 09:43:43

标签: c string

我有一个表示范围的字符串range,例如:

"7-35"

我正在寻找一种简单的方法将其拆分为两个整数int beginint end
我已经看到了thisthis,但实际上我正在搜索某种“一行”命令。如果有的话。 这实际上与做法相反:

sprintf(range,%d-%d,start,end);

4 个答案:

答案 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);