配列をアルファベット順にソートしようとしていますが、配列をアルファベット順に並べ替えることはできません。私は並べ替えに関するいくつかの基本を知っていますが、アルファベット順に並べ替える方法はわかりません。配列をアルファベット順に並べ替える(C++)
EDIT:名前、姓、ID、グレードの4つの並列配列で作業しています。私は文字列である姓でソートしようとしています。私はすべての情報を交換する方法を知っているだけで、アルファベット順に比較する方法を知る必要があります。
配列をアルファベット順にソートしようとしていますが、配列をアルファベット順に並べ替えることはできません。私は並べ替えに関するいくつかの基本を知っていますが、アルファベット順に並べ替える方法はわかりません。配列をアルファベット順に並べ替える(C++)
EDIT:名前、姓、ID、グレードの4つの並列配列で作業しています。私は文字列である姓でソートしようとしています。私はすべての情報を交換する方法を知っているだけで、アルファベット順に比較する方法を知る必要があります。
各文字を他の文字と簡単に比較することで、アルファベット順に並べ替えることができます。
コンパイラは、文字を比較しながら文字のASCII値を取ります。
たとえば、文字列配列はです。char ch [6];この配列をソートするために、あなたが行うことができます
さて、上記のコードで
char temp = ch[0];
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
if(ch[i]<ch[j])
{
temp = ch[i];
ch[i]=ch[j];
ch[j]=temp;
}
}
}
を、それは簡単ですので、コンパイラは、ASCII値をとります。
任意のソートアルゴリズムを適用できます。
以下にお試しください。 。
#include<bits/stdc++.h>
using namespace std ;
struct Student
{
string firstName;
string lastName;
float grade ;
string id ;
};
bool byLastName(Student b ,Student a)
{
if(strcmp(a.lastName.c_str() , b.lastName.c_str()) == 1)
return true ;
return false ;
}
int main()
{
Student them [] = {
{"Sudipto" , "Roy" , 3.5 , "A-51"},
{"Potter" , "Zam" , 4.5 , "X-420"},
};
int themCount = sizeof (them)/sizeof (Student) ;
sort(them , them + themCount , byLastName);
for (auto a : them)
cout << a.lastName <<endl ;
return 0;
}
私は何かしようとしていますが、わかりません。これはプログラミングの質問よりも、徹底的な命令です。 –