我是一名通过教程学习 C++ 的新手程序员,我想知道如何获取一个字符串,获取它的首字母,将其与其他 2 个字符串的首字母进行比较,然后按字母顺序对它们进行排序。我不想为我编写代码。我想了解如何执行此操作,因为其他解决方案很难理解。
我知道字符串只是 char 数组,所以应该有一个方法来获取第一个索引。
更新
所以这是我的尝试:
#include <iostream>
#include <string>
using namespace std;
void valueOutput(string firstName, string secondName, string thirdName){
cout << "\n";
cout << firstName << endl;
cout << secondName << endl;
cout << thirdName << endl;
}
int main(){
string name1, name2, name3;
cout<<"Enter 3 names: "<<endl;
cin>>name1;
cin>>name2;
cin>>name3;
if(
(name1[0] < name2[0] && name2[0] < name3[0])
|| (name1[0] < name3[0] && name3[0] < name2[0])
|| (name2[0] < name1[0] && name1[0] < name3[0])
|| (name2[0] < name3[0] && name3[0] < name1[0])
|| (name3[0] < name1[0] && name1[0] < name2[0])
|| (name3[0] < name2[0] && name2[0] < name1[0]))
{valueOutput(name1, name2, name3);}
else{
return 0;
}
}
我的输入是: 斯坦贝克 海明威 菲茨杰拉德
但输出的顺序完全相同。我想按字母顺序对它们进行排序。
最佳答案
I know that strings are just arrays of char so there should be a method to get the first index.
看来你的意思是字符串文字。
如果你有三个像这样的声明
char *s1 = "Onur";
char *s2 = "Ozbek";
char *s3 = "Hello";
然后您可以通过以下方式比较字符串文字的第一个字符
if ( s1[0] == s2[0] )
或
if ( *s2 == *s3 )
如果您声明数组而不是指针,则可以使用相同的表达式
char s1[] = "Onur";
char s2[] = "Ozbek";
char s3[] = "Hello";
事实上你甚至可以使用下面的表达式
if ( "Onur"[0] == "Ozbek"[0] )
或
if ( *"Onur" == *"Ozbek" )
甚至喜欢
if ( 0["Onur"] == 0["Ozbek"] )
直接比较字符串文字的第一个字符。
关于c++ - 检索字符串的第一个字符并在 C++ 中按字母顺序比较它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49433440/