[英]How to read user input with delimiting character while retaining white spaces as input in c++
[英]prevent input for double spaces in character arrayin C++
我必須避免雙空格,雙! 並在我的字符數組中添加雙句號。 順便說一句,我必須使用字符數組。 例如有效數據:“下雨了。!” 無效數據:“下雨了!!” (這只是例子)
我嘗試了以下方法,但沒有得到想要的結果。 請幫助我。
#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;
}
您的代碼失敗,因為沒有字符可以同時等於,
, !
, 和 . 即使您修復了該問題,您仍然會標記
,!
作為無效。
直接測試屬性:
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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.