C 如何选择/读取/复制字符串中特定字符后的值

C 如何选择/读取/复制字符串中特定字符后的值,c,C,我是这方面的初学者,所以我希望能找到一些解决办法 如何读取、复制或选择字符串中特定字符后的数字值 假设我有一个字符串: “ans=(提交的任何数字)” 如何仅选择(提交的任何数量)零件 假设提交的值为999。。因此,字符串将是“ans=999”。。在这种情况下,如何复制999?我想稍后使用atoi()的值 先谢谢你。非常感谢这里的帮助函数返回从指定字符的第一个实例开始的字符串函数返回从指定字符的第一个实例开始的字符串如果字符串的格式为ans=999,您通常会使用strchr()查找= 所以 应该

我是这方面的初学者,所以我希望能找到一些解决办法

如何读取、复制或选择字符串中特定字符后的数字值

假设我有一个字符串:

“ans=(提交的任何数字)”

如何仅选择(提交的任何数量)零件

假设提交的值为999。。因此,字符串将是“ans=999”。。在这种情况下,如何复制999?我想稍后使用atoi()的值


先谢谢你。非常感谢这里的帮助

函数返回从指定字符的第一个实例开始的字符串

函数返回从指定字符的第一个实例开始的字符串

如果字符串的格式为
ans=999
,您通常会使用
strchr()
查找
=

所以

应该打印

arg points to 999

给定一个格式为
ans=999
的字符串,您通常会使用
strhr()
来查找
=

所以

应该打印

arg points to 999
您可以通过以下方式实现:

返回指向C字符串str中第一个出现的字符的指针

您只需找到字符
=
,然后取出后面的所有内容:

#include <string.h>  // For strchr

char* ans = "ans=999";          // Your string with your example
char* num = strchr( ans, '=' ); // Retrieve a pointer to the first occurence found of =

if ( num != NULL )              // Test if we found an occurence
{
    arg++;                      // We want to begin after the '='

    printf( "The number : %s", arg ); // For example print it to see the result
}
else
{
    // Error, there is no = in the string
}
#包括//用于strchr
char*ans=“ans=999”//你的字符串和你的例子
char*num=strchr(ans,'=');//检索指向找到的第一个实例的指针=
if(num!=NULL)//测试是否发现了事件
{
arg++;//我们希望在“=”之后开始
printf(“数字:%s”,arg);//例如,打印它以查看结果
}
其他的
{
//错误,字符串中没有=
}
您可以通过以下方式实现:

返回指向C字符串str中第一个出现的字符的指针

您只需找到字符
=
,然后取出后面的所有内容:

#include <string.h>  // For strchr

char* ans = "ans=999";          // Your string with your example
char* num = strchr( ans, '=' ); // Retrieve a pointer to the first occurence found of =

if ( num != NULL )              // Test if we found an occurence
{
    arg++;                      // We want to begin after the '='

    printf( "The number : %s", arg ); // For example print it to see the result
}
else
{
    // Error, there is no = in the string
}
#包括//用于strchr
char*ans=“ans=999”//你的字符串和你的例子
char*num=strchr(ans,'=');//检索指向找到的第一个实例的指针=
if(num!=NULL)//测试是否发现了事件
{
arg++;//我们希望在“=”之后开始
printf(“数字:%s”,arg);//例如,打印它以查看结果
}
其他的
{
//错误,字符串中没有=
}

一种方法是如上所述使用strchr。这将指向该字符在字符串中的第一个位置。但如果您知道每次都使用“ans=#”作为格式。为什么要在strhr上浪费CPU时间?一个更快的方法是去sscanf。例如:

char *string = "ans=999";
int number, scanned;

scanned = sscanf(string,"ans=%d",&number);

if(scanned < 1)
printf("sscanf failure\n");
char*string=“ans=999”;
整数,扫描;
扫描=sscanf(字符串,“ans=%d”和编号);
如果(扫描<1)
printf(“sscanf故障”);

这样做的目的是抓取字符串中的999并将其设置为数字。sscanf还返回成功扫描的数字数量,以便您以后可以使用该数字进行错误检查等。

一种方法是使用上文提到的strchr。这将指向该字符在字符串中的第一个位置。但如果您知道每次都使用“ans=#”作为格式。为什么要在strhr上浪费CPU时间?一个更快的方法是去sscanf。例如:

char *string = "ans=999";
int number, scanned;

scanned = sscanf(string,"ans=%d",&number);

if(scanned < 1)
printf("sscanf failure\n");
char*string=“ans=999”;
整数,扫描;
扫描=sscanf(字符串,“ans=%d”和编号);
如果(扫描<1)
printf(“sscanf故障”);

这样做的目的是抓取字符串中的999并将其设置为数字。sscanf还将返回成功扫描的数字数量,以便稍后用于错误检查等。

Ah。。我以前读过这篇文章,但不太明白。。现在我知道该强调什么了谢谢你啊。。我以前读过这篇文章,但不太明白。。现在我知道该强调什么了谢谢你的解决方案。我也使用atoi()成功地转换了值。。非常感谢。谢谢你的解决方案。我也使用atoi()成功地转换了值。。非常感谢。谢谢你的解决方案。我也使用atoi()成功地转换了值。。非常感谢。谢谢你的解决方案。我也使用atoi()成功地转换了值。。非常感谢。