gpt4 book ai didi

c++ - 循环和 strcpy

转载 作者:太空宇宙 更新时间:2023-11-04 11:46:58 25 4
gpt4 key购买 nike

#include <iostream>
#include <string>

using namespace std;

int main()
{
int n;

cout << "Enter n: ";
cin >> n;
cout << "Enter " << n << "names";

for(int i=0; i<n; i++)
{





system("pause>0");
return 0;
}

这是我未完成的代码。我需要输入一个数字,然后它会要求我输入 n 个名字。输入名称后,程序应按字母顺序对名称进行排序。我将如何在 Looping 中做到这一点?我在循环部分很困惑。是的,我知道当我完成循环后我将编写什么代码。我只是在这部分感到困惑和有问题。提前致谢!

最佳答案

这是您要执行的操作的 STL 版本:

#include <iostream>
#include <vector>
#include <cstdlib>
#include <string>
#include <algorithm>

int main() {
std::vector<std::string> names;

int num = 0;
std::cout << "Please enter a number: ";
std::cin >> num;
std::cout << "\n";

std::string name;

for (int i = 0; i < num; ++i) {
std::cout << "Please enter name(" << (i+1) << "): ";
std::cin >> name;
names.push_back(name);
}

//sort the vector:
std::sort(names.begin(), names.end());

std::cout << "The sorted names are: \n";

for (int i=0; i<num; ++i) {
std::cout << names[i] << "\n";
}

return 0;
}

但是,此版本是区分大小写的排序,因此是否符合您的要求可能会有问题。因此,接近不区分大小写排序的下一步可能是在 vector 排序之前使用这段代码:

    //transform the vector of strings into lowercase for case-insensitive comparison
for (std::vector<std::string>::iterator it=names.begin(); it != names.end(); ++it) {
name = *it;
std::transform(name.begin(), name.end(), name.begin(), ::tolower);
*it = name;
}

不过,此方法的唯一警告是您的所有字符串都将转换为小写。

引用资料:

https://stackoverflow.com/a/688068/866930

How to convert std::string to lower case?

关于c++ - 循环和 strcpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19531135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com