如何在一行输入中读入(cin)2个连续的单词,这个单词超过2个单词?

时间:2016-03-27 20:44:25

标签: arrays split cin c-strings

我需要读取用户的值,例如车牌,姓名,电话号码和服务类型。

如果用户在每次输入后使用返回字符,我已经知道如何读取它,即:

   A36 HTY
   John Doe
   (263)7742336
   Bronze

但如果这些值全部放在一行,怎么能将这些值读入我的数组呢?我可以逐字阅读,但我需要能够在牌照的两半读取,并将第一个和最后一个名字读入阵列中的一个位置。

感谢您的帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

读取整行,然后使用您的软件编程检查非空白之间是否存在任何空白,如果有,请将读取的字符串分成两个空白不同的字符串。

答案 1 :(得分:0)

您可以使用isspace。

使用此链接可获得帮助: https://www.geeksforgeeks.org/isspace-in-c-and-its-application-to-count-whitespace-characters/

在此示例中,他们使用isspace来计算字符串中的空格数。您可以更改代码以将每个单词保存在不同的字符串中。由于我已经很长时间没有编写cpp了,所以我不想给您提供可能不正确的示例。

// input sentence 
char buf[50] = "Geeks for Geeks"; 
ch = buf[0]; 

// counting spaces 
while (ch != '\0') { 
    ch = buf[i]; 
    if (isspace(ch)) 
        count++; 

    i++; 
} 

// returning number of spaces 
return (count);