【发布时间】:2020-08-28 14:42:36
【问题描述】:
从标题中可以看出,我想将 word 中的小写字符更改为大写,反之亦然。 我还需要使用结构对象(在我的例子中)。 当我将字符从小写更改为大写时,我遇到了一个问题,它只会在第一个单词中发生变化,而不是在第二个、第三个等等中发生变化。我也在从文件中读取单词
这是输入文件
Aayak Audi
Ahmed Golf7
Samed Golf5
这里是代码
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#include <cctype>
using namespace std;
struct pismaStr
{
string ime;
string objekat;
};
void malaVelikaSlova (string name)
{
for (int i = 0; i < name.length()-1; i++)
{
if (name.at(i) >= 'A' && name.at(i) <= 'Z')
name.at(i) += 32;
else if (name.at(i) >= 'a' && name.at(i) <= 'z')
name.at(i) -= 32;
cout << name;
break;
}
}
int main()
{
ifstream pismo;
pismo.open("pismo.txt");
ofstream novoPismo;
novoPismo.open("novaSlova.txt");
pismaStr stvari[200];
int brojStvari = 0;
while(pismo >> stvari[brojStvari].ime >> stvari[brojStvari].objekat)
{
brojStvari++;
}
for (int i = 0; i < brojStvari; i++)
{
vector <pismaStr> vec = {pismaStr{stvari[i].ime}};
for (auto obj : vec)
{
malaVelikaSlova (obj.ime);
}
}
这是输出:
aayak
ahmed
samed
原来是:
Aayak
ahmed
samed
我希望它看起来像这样
aAYAK
sAMED
aHMED
我该如何解决这个问题? 有什么建议吗?
【问题讨论】:
-
你能显示你正在使用的输入文件吗?
-
哦,是的,我忘了这个
标签: c++ arrays struct lowercase