简体   繁体   中英

prevent input for double spaces in character arrayin C++

I have to avoid double spaces, double ! and double full stops in my character array. I must have to use character array btw. eg Valid data: "It is raining.!" Invalid Data: "It is raining!!." (it is only example)

I tried the following way but am not getting desired result. Plz help me.

#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;
}

Your code fails because no character can simultaneously be equal to , , ! , and . Even if you fix that, you will still flag ,! as invalid.

Test the property directly instead:

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;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM