【问题标题】:prevent input for double spaces in character arrayin C++防止在 C++ 中输入字符数组中的双空格
【发布时间】:2020-01-03 13:25:28
【问题描述】:

我必须避免双空格,双!并在我的字符数组中加双句号。顺便说一句,我必须使用字符数组。 例如有效数据:“下雨了!”无效数据:“正在下雨!!。” (只是例子)

我尝试了以下方法,但没有得到想要的结果。请帮帮我。

#include<iostream>
using namespace std;
bool isValidData( char data[60] );
int main()
{
    char data[60];
    cin.getline(data,60);
    bool name = isValidData(data);
    cout<<name;
}
bool isValidData( char data[60] ) 
{
    int i=0;
    while(data[i]!='\0') {
        if ( data[i]==' ' && data[i]=='.' && data[i]=='!'){
            if ( data[i+1]==' ' && data[i+1]=='.' && data[i+1]=='!')
                return false;
            }
        i++;
    }
    return true;
}

【问题讨论】:

  • 您能否提供输入和所需/实际输出。

标签: c++ validation input


【解决方案1】:

您的代码失败,因为没有字符可以同时等于 ,!。 即使您解决了这个问题,您仍然会将 ,! 标记为无效。

改为直接测试属性:

bool isValidData( char data[60] ) 
{
    int i=0;
    while(data[i]!='\0' && data[i+1]!='\0') {
        if ((data[i]==' ' || data[i]=='.' || data[i]=='!') && data[i+1]==data[i]) {
            return false;
        }
        i++;
    }
    return true;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-01
    • 2021-03-23
    • 2014-03-29
    • 1970-01-01
    • 2015-08-16
    • 2017-03-08
    • 2010-11-06
    • 2023-01-29
    相关资源
    最近更新 更多