Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将字符串中的小写字母转换为大写字母_C++_String - Fatal编程技术网

C++ 将字符串中的小写字母转换为大写字母

C++ 将字符串中的小写字母转换为大写字母,c++,string,C++,String,印刷室的新打字员粗心大意地打着分配的作业。打字员本来应该用大写字母打字,但现在也用小写字母了。您的职责是验证所有字符是否都是大写的,如果不是,请执行此操作。另外,通知打字员有多少错误 输入开始 输出开始1 我在一些情况下得到了错误的答案,请帮助我是初学者 n=字符串的长度 1s; int ans=0; 用于(自动和控制:s){ if(岛下(c)){ ans++; c=toupper(c); } } cout我认为它也包括空格,所以不要使用>操作符,而是使用getline(cin,string),

印刷室的新打字员粗心大意地打着分配的作业。打字员本来应该用大写字母打字,但现在也用小写字母了。您的职责是验证所有字符是否都是大写的,如果不是,请执行此操作。另外,通知打字员有多少错误

输入
开始

输出
开始1

我在一些情况下得到了错误的答案,请帮助我是初学者

n=字符串的长度
1s; int ans=0; 用于(自动和控制:s){ if(岛下(c)){ ans++; c=toupper(c); } }
cout我认为它也包括空格,所以不要使用
>
操作符,而是使用
getline(cin,string)
,因为出现空格时
>
会终止

#include <iostream>
using namespace std;

int main() {

 string s;
 getline(cin,s);
 int ans = 0;
 for (auto &c : s) {
     if (islower(c)) {
         ans++;
         c = toupper(c);
     }
 }
 cout << s;
 cout << endl;
 cout << ans;
 return 0;
}
#包括
使用名称空间std;
int main(){
字符串s;
getline(cin,s),;
int ans=0;
用于(自动和控制:s){
if(岛下(c)){
ans++;
c=toupper(c);
}
}
cout这应该有效:

#include<stdio.h>
#include<iostream>
#include<string>
using namespace std;


 int main() {

     string s;
    getline(cin,s);
     int ans = 0;
     for (auto &c : s) {
         if (islower(c)) {
             ans++;
             c = toupper(c);
         }
     }
     cout << s;
     cout << endl;
     cout << ans;
     return 0;
 }
#包括
#包括
#包括
使用名称空间std;
int main(){
字符串s;
getline(cin,s),;
int ans=0;
用于(自动和控制:s){
if(岛下(c)){
ans++;
c=toupper(c);
}
}

输入是否可以包含空格?如果可以,请使用而不是
运算符>>
。对于某些特定的输入,预期的输出是什么?程序的实际输出是什么?请花一些时间阅读,以及。
在某些情况下,我得到了错误的答案。
你能举个例子吗?根据你的说法,
的输出是GIN <代码>代码>开始1 < /代码>,如果你看到的是你在下一行中代替了同一行打印代码>代码> ANS/CODE。使用<代码> CUT作为一个惯用的C++解决方案,请阅读有关这三个函数的帮助(借助于代码> STD::IsLoad < /Cl> >和<>代码> STD::ToupPp<将以一种简洁但仍然可以理解的方式完成您想要的所有操作。不完全返回,但当出现空白时,std:cin>>不会存储进一步的值。@armnmontigny:未提及上述不良影响。此外,islower()能处理字母数字字符,我想还有其他一些我们没有考虑过的情况。除了这两个答案之外,这个答案和另一个答案是一样的。除了另一个答案实际上提供了对可能问题的解释。那么你为什么要再次发布它呢?
#include<stdio.h>
#include<iostream>
#include<string>
using namespace std;


 int main() {

     string s;
    getline(cin,s);
     int ans = 0;
     for (auto &c : s) {
         if (islower(c)) {
             ans++;
             c = toupper(c);
         }
     }
     cout << s;
     cout << endl;
     cout << ans;
     return 0;
 }