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