在C编程中读取带空格的行并分割单词
Reading line with spaces in C Programming and segmentating the words
我有类似于以下的输入:
强尼 ID5 409-208
我需要能够读取输入并按照如下结构组织输出:
姓名:约翰希
类型:ID5
身份证号码:409-208
但我正在努力寻找有关如何使用空格处理段的文献。我承认我是 C 的新手。
声明具有适当长度的变量并且:
scanf("%s %s %s", name, type, id);
如果您想了解如何处理单个字符,请查看下一部分。
#include <stdio.h>
#include <string.h>
int main()
{
char mstring[] = "Hello World";
char space = ' ';
int a = 0;
while ( a < strlen(mstring))
{
if (mstring[a] == space)
{
printf ("found space!");
}
a++;
}
return 0;
}
由于我的其他答案不被接受,这里是如何做的。但我认为,如果您尝试编写一个 returns 每个单词基于空格的函数,您会学到很多东西。这取决于你想学什么。
#include <stdio.h>
int main()
{
char mstring[] = "Johnhy ID5 409-208";
char name[50];
char type[50];
char id[50] ;
sscanf(mstring, "%s %s %s", name, type, id);
printf("Name:%s\nType:%s\nID:%s\n", name, type, id);
return 0;
}
我有类似于以下的输入:
强尼 ID5 409-208
我需要能够读取输入并按照如下结构组织输出:
姓名:约翰希
类型:ID5
身份证号码:409-208
但我正在努力寻找有关如何使用空格处理段的文献。我承认我是 C 的新手。
声明具有适当长度的变量并且:
scanf("%s %s %s", name, type, id);
如果您想了解如何处理单个字符,请查看下一部分。
#include <stdio.h>
#include <string.h>
int main()
{
char mstring[] = "Hello World";
char space = ' ';
int a = 0;
while ( a < strlen(mstring))
{
if (mstring[a] == space)
{
printf ("found space!");
}
a++;
}
return 0;
}
由于我的其他答案不被接受,这里是如何做的。但我认为,如果您尝试编写一个 returns 每个单词基于空格的函数,您会学到很多东西。这取决于你想学什么。
#include <stdio.h>
int main()
{
char mstring[] = "Johnhy ID5 409-208";
char name[50];
char type[50];
char id[50] ;
sscanf(mstring, "%s %s %s", name, type, id);
printf("Name:%s\nType:%s\nID:%s\n", name, type, id);
return 0;
}