指针数组,与字符串按字符大小排序问题。
void Sort(char *pstr[], int n)
{
char *temp;
int i, j, k;
for(i = 0; i < n - 1; i++)
{
k = i;
for(j = i + 1; j < n; j++)
{
if(strcmp(pstr[k], pstr[j]) > 0)
k = j;
if(k != i)
{
temp = pstr[i];
pstr[i] = pstr[k];
pstr[k] = temp;
}
}
}
}
void Output(char *pstr[], int n)
{
for(int i = 0; i < n; i++)
cout<<pstr[i]<<endl;
}
int main(int argc, char *argv[])
{
char *pstr[5] = {"BASIC", "FORTRAN", "C++", "PASCAL", "COBOL"};
Sort(pstr, 5);
Output(pstr, 5);
return 0;
}
结果:
BASIC
C++
COBOL
FORTRAN
PASCAL
Press any key to continue . . .
这个程序我不明白。在函数中,不能企图通过改变形参指针变量的值而使实参指针变量的值改变。
strcmp是对比字符串大、小、等于。但不是对比字符串前边的字符大小吧?
请各位解释一下这个程序。写些注释出来,我看不明白,为什么可以这样做法?用strcmp?
相关推荐
字典序(Lexicographical Order).pdf
字典序 字典序(Lexicographical Order)是一种比较和排序的方法,通常用于对字符串进行排序。在字典序中,字符串的比较是按照字符的顺序进行的,从左到右依次比较每个对应位置上的字符的大小。 举个例子,假设有三个字符串"apple", "banana", "cherry",这些字符串按照字典序排列的顺序是"apple", "banana", "cherry"。因为在第一个位置上,'a'比'b'小,所以"apple"排在"banana"之前;在第一个位置上,'b'比'c'小,所以"banana"排在"cherry"之前。 在编程中,可以使用字符串比较函数(如strcmp)或者自定义排序算法来实现字典序的排序。下面是一个使用C语言的字符串比较函数strcmp进行字典序排序的示例代码:
用C写的数据结构算法
很好的数据结构算法,相关的二叉树,都有具体的算法
CSUOJ,264个问题的正确代码
CSUOJ排行榜第五名(Christina),使用代码语言主要是C,部分是Java,题目带有顺序题号索引,按索引找不到的题目就是没做出来。
输入3个字符串,将它们按照字母由大到小排序(示例代码)
用string方法定义字符串变量 实现代码: 代码如下:#include<iostream>#include<string>using namespace std;int main(){ string a,b,c,t; cout<<“please input first string:”<<endl>>a; cout<<“please input second string:”<<endl>>b; cout<<“please input third string:”<<endl>>c; if(a>b){ t=a; a=b; b=t; } if(a>c){
java字母数字混搭字符串排序[归类].pdf
java字母数字混搭字符串排序[归类].pdf

