如何在c编程中获取字符串中搜索字符串的下一个数字

时间:2018-06-14 04:34:03

标签: c

这是我的字符串" 这只是一个文字。数据:无效。宁静的信息。实际位置:1234系统要求"。

我的搜索字符串是" 实际位置:"而且我感兴趣的是前面的数字会随着电机的移动而变化。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

您必须使用strstr进行搜索,然后使用长度为"Actual Position:"的位置指针,最后使用sscanf来读取值:

#include <stdio.h>
#include <string.h>



int main()
{
    char data[] = "This is just a text. Data: Is invalid. Restful information. Actual Position:1234 System requirements";
    char srcData[] = "Actual Position:";
    char *pos = strstr(data, srcData) + strlen(srcData);
    int value = 0;
    sscanf(pos, "%d",&value);
    printf("%d",value);

    return 0;
}

答案 1 :(得分:0)

您应该可以使用sscanf(请参阅scanf格式)。你可以做一些事情。

#include <stdio.h>
#include <string.h>

int main ()
{
  int i=-1;
  char sentence[]="This is just a text. Data: Is invalid. Restful information. Actual Position:1234 System requirements";
  char key[]="Actual Position:";
  char* subst= strstr(sentence, key);

  if(subst != 0){
     int n = sscanf (subst,"Actual Position:%i",&i);
     if (n  > 0){
         printf ("Found Actual Position => %d\n",i);
     }
  }
  return 0;
}