在C中拆分字符串并从标准输入进行转换

在C中拆分字符串并从标准输入进行转换,c,string,input,C,String,Input,假设我有一个来自标准输入的命令,格式为“”(因此有3个单独的部分,每个部分由一个空格分隔)。如何将其拆分,使命令为字符串,id为整数,值存储在整数中?我曾考虑先读取字符串,然后使用atoi函数获取id和value,但这似乎效率低下。有人能帮我吗?这可能会有帮助: #include<stdio.h> void main() { char str[50],com[50],val[50],id[50]; int value,idd,i=0,j=0; printf("

假设我有一个来自标准输入的命令,格式为“”(因此有3个单独的部分,每个部分由一个空格分隔)。如何将其拆分,使命令为字符串,id为整数,值存储在整数中?我曾考虑先读取字符串,然后使用atoi函数获取id和value,但这似乎效率低下。有人能帮我吗?

这可能会有帮助:

#include<stdio.h>
void main()
{
    char str[50],com[50],val[50],id[50];
    int value,idd,i=0,j=0;
    printf("Enter String :");
    scanf("%[^\n]%*c", str);

    while(str[i]!=' ')
    {
        com[i]=str[i];
        i++;
    }
    com[i]='\0';
    i++;

    while(str[i]!=' ')
    {
        id[j]=str[i];
        i++;
        j++;
    }
    id[j]='\0';
    i++;
    j=0;

    while(str[i]!='\0')
    {
        val[j]=str[i];
        i++;
        j++;
    }
    val[j]='\0';

    value=atoi(val);
    idd=atoi(id);

    printf("%s %d %d",com,idd,value);

}
#包括
void main()
{
字符str[50],com[50],val[50],id[50];
int值,idd,i=0,j=0;
printf(“输入字符串:”);
scanf(“%[^\n]%*c”,str);
while(str[i]!='')
{
com[i]=str[i];
i++;
}
com[i]='\0';
i++;
while(str[i]!='')
{
id[j]=str[i];
i++;
j++;
}
id[j]='\0';
i++;
j=0;
while(str[i]!='\0')
{
val[j]=str[i];
i++;
j++;
}
val[j]='\0';
值=atoi(val);
idd=atoi(id);
printf(“%s%d%d”,com,idd,value);
}