为什么在输入的第一行输入测试用例数量后得到垃圾值?
Why I am getting a garbage value after entering number of test cases in the first line of the input?
>输入:
输入的第一行包含一个整数 T,表示 测试用例。
每个测试用例的唯一一行包含 名字。
输出
对于每种情况,输出格式正确的名称。
约束:
- 1 ≤ T ≤ 100
-
2 ≤ 名称各部分的长度 ≤ 10 名称的每个部分都包含小写和大写英语的字母 字母(即从"a"到"z",或从"A"到"Z")
***Input*** 3 gandhi mahatama gandhi mohandas karamchand gandhi ***Expected Output:*** Gandhi M.Gandhi M.K.Gandhi ***My output:*** à Gandhi M.Gandhi M.K.Gandhi
为什么我在第一行得到"à"符号? 我创建了一个函数格式化程序来为测试用例提供 for 循环。
如果代码太笨重,我提前道歉。
#include<bits/stdc++.h>
using namespace std;
int z;
void formatter(int z){
for(int q = 0;q <= z;q++){
string s;
int count=0;
int k = 0,p = 0,r = 0,t = 0,l = 0,a = 0,x = 0 ;
getline(cin,s);
for(int p = 0;p <= s.size();p++){
if((s[p]==' ')||(p==0)){
count++;
}
}
if(count == 1){
while(r<=s.size()){
s[0] = s[0] -'a' + 'A';
cout << s[r] ;
r++;
}
cout << "n";
}
if(count == 2){
for(int l = 0;l<s.size();l++){
if(l==0){
s[l] = s[l] -'a' + 'A';
cout << s[l] << ".";
a++;
}
if(s[l]==' '){
if(a==1){
++l;
while(l <= s.size()){
if(x == 0){
s[l] = s[l] -'a' + 'A';
}
cout << s[l] ;
a++;
l++;
x++;
}
}
}
}
cout << "n";
}
if(count==3){
for(int i=0;i<s.size();i++){
if(i==0){
s[i] = s[i] -'a' + 'A';
cout << s[i] << ".";
t++;
}
if(s[i]==' '){
if(t==1){
++i;
s[i] = s[i] -'a' + 'A';
cout << s[i] << ".";
t++;
}
else
while(k<=10){
if(k==1){
s[i] = s[i] -'a' + 'A';
}
cout << s[i];
i++;
k++;
}
}
}
}
}
cout << "n";
}
int main(){
cin >> z;
formatter(z);
}
几件事
在- main 中读取计数的 cin 不消耗结束行
- 格式化程序中的循环是从 0 到在 main 中读取的数字(包括 main)。这是错误的。
- 考虑将 toupper 转换为 uppper 案例。
- 考虑分解处理 1、2 和 3 名称的代码。
相关文章:
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 在C++中,我如何接受不同于同一行的用户输入
- 如何确保用户在一行上提示输入一次时输入名字和姓氏?
- 忽略一行输入中的某些输入
- 丢失读入的每一行输入中的最后一个令牌
- 一行输入到多个变量
- 如何检查从键盘输入的特定整数值是否存在于C++文件中的一行或多行中
- 通过显示一行星号来创建条形图,该条形图将读取数据的输入文件
- 与 C++ 中一行中的用户输入数组元素相关的问题
- 如何在应用程序进行大量printf时,在固定输入的终端中设置最后一行
- 使用 getline 从输入文件读取一行到输出文件
- 标准输入未读取最后一行
- C :使用getline从文本文件中输入,要么跳过第一行,要么将其余部分弄乱
- 在一行中输入具有其他输入类型的多个单词字符串
- 如何在用户输入值后写入.csv文件的下一行,而不会覆盖以前的值?
- 如何强制 getline() 一次输入一行
- 如何让控制台在输入一行文本时输出某些内容
- 在c++中一次向字符串数组中输入一行
- 程序只在文本文件中输入一行