gpt4 book ai didi

c++ - 检查 Char 中的空格和检查字符串中的数字

转载 作者:行者123 更新时间:2023-11-28 00:17:36 25 4
gpt4 key购买 nike

所以我遇到了这个问题:

Write a program that reads a text file and checks for correctness of the word. A word is correct if it starts with a character only and does not contain any number in it. The input ends with a semi-colon ;

我尝试通过两种方式做到这一点:

#include<iostream>
using namespace std;
int main()
{
char text;

cout<<"Enter a group of words ending with a semicolon ; ";
cin>>text;
int ctr=0;
while(text !=';')
{
if (text == ' ') ctr++;
cin>>text;
}

cout<<ctr;



return 0;
}

但这无法在空格处递增。

我尝试使用字符串而不是字符进行相同的尝试,单词计数器可以工作,但是 text == "0"(例如)也不能正常工作..

为什么 Char 不读取空白,为什么 String 不读取数字?

最佳答案

cin >> text 忽略前导空格。

text 是单个 char 时,>>> 将读取下一个字符(如果可用),否则失败。

text 是一个 char 数组时,>>> 将读取字符,直到遇到空格、达到其最大宽度或失败。

无论哪种方式,>>> 都不会返回它跳过的空格。所以 text 永远不会等于 ' '。此外,您的计数器应该计算实际阅读的单词,而不是它们之间的空格。

尝试更像这样的东西:

#include <iostream>
#include <iomanip>
#include <string.h>

using namespace std;

int main()
{
cout << "Enter a group of words ending with a semicolon ; ";

char text[512];
int ctr = 0;

while (cin >> setw(512) >> text)
{
if (strcmp(text, ";") == 0) break;
++ctr;
}

cout << ctr;

return 0;
}

关于c++ - 检查 Char 中的空格和检查字符串中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29268305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com