全WA求调

B2120 单词的长度

paulyan @ 2024-08-20 19:11:40


#include <string>
#include <cstring>
using namespace std;
char ch[105];
int main(){
    int cnt=0;
    cin>>ch;//输入
    while(cin>>ch){
        if(ch==" "){//判断长度与结束条件 
            cout<<cnt<<",";
            continue;
        }else if(ch=="."){
            cout<<cnt;
            break;  
        }else{
            cnt++;
        }   
    }
    return 0;
}

by lxr_Galaxy @ 2024-08-20 19:16:53

ch==" "并输出cnt后,要加上cnt=0; “ ”后面是一个新的单词,要重新计算长度 @paulyan


by lxr_Galaxy @ 2024-08-20 19:20:31

另外,本题要求是输入一行,while(cin>>ch)完全不可能实现 @paulyan


by paulyan @ 2024-08-20 19:37:15

@lxr_Galaxy 哦,知道了,xiexie


by paulyan @ 2024-08-20 20:35:25

问一下这样怎么没输出


by paulyan @ 2024-08-20 20:35:42

抱歉忘发代码了


by paulyan @ 2024-08-20 20:36:04


#include <iostream> 
#include <string>
#include <cstring>
using namespace std;
char ch[105];
int main(){
    int cnt=0;
    cin>>ch;//输入
    int n=strlen(ch);
    for(int i=0;i<n;i++){
        if(ch==" "){//判断长度与结束条件 
            cout<<cnt<<",";
            cnt=0;
            continue;
        }else if(ch=="."){
            cout<<cnt;
            break;  
        }else{
            cnt++;
        }   
    }
    return 0;
}

by lxr_Galaxy @ 2024-08-21 21:21:12

@paulyan cin只能读到空格,建议使用getline函数


by lxr_Galaxy @ 2024-08-22 07:20:31

@paulyan 还有一个问题是,你读入的应该是一个字符串,在循环判断时要一个一个字符去判断,而不是拿一整个字符串去比较,导致你的代码所呈现的行为是:读入一个字符串,循环了它的长度次,每次都在判断一整个字符是否等于空格或".",结果就是字符串不等于这两个字符,就会导致没输出 有点绕,看不懂问我qwq


|