文章
8
粉丝
140
获赞
20
访问
26.6k
这边总结一下,有关于字符排序后输出的一点关于本题的小心得:
知识点1:当我们遇到有关字符串比较的题目时,采用头文件#include<string.h>,然后使用strcmp比较会显得得心应手,这边说明一下,strcmp(char a,char b);首先输入的是char类型的数组或者字符,而不是输入string字符串,因为函数内部无法再将string字符串进行位置赋值后再进行比较,而字符数组char a【105】可以做到,字符比较更不用说,其次输出的是前后ASCII码的差值,这里代表的就是如果返回的是负数,那么就代表前小后大;
知识点2:结构体的定义,一般struct之后带的是结构体整体的名字,一般用作于标识,而结构体外最后的大括号外的则是定义这个数群,每一个的符号命名,是作为单一个体存在的,那么代码段中存放的就是个体的属性,可以有很多的定义,例如string、char、int等等;
知识点3:那么无论再输入个体的值也好、名称也好,在相对应的s【i】后面都要带上.属性了,并不能只单纯的s[i],不然不知道输出或输入进去的是s个体的哪个属性。
#include<bits/stdc++.h>
using namespace std;
struct guoming{//结构整体的名字
char name[105];//这里要char,不然strcmp的比较变量无法通过;
}s[105];//定义一个结构体 ,后面不写,那么就要在main函数里面定义出来 ,后面算个体的数据,而中间代码段表示的是个体的属性
bool cmp(guoming a,guoming b){
return strcmp(a.name,b.name)<0;//少了分号
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>s[i].name;
}
sort(s,s+n,cmp);
for(int i=0;i<n;i++){
cout <<s[i].name<<endl;//这里要添...
登录后发布评论