编写函数,将一个字符串进行降序排序, 并将排序后的字符串转换成整数数组。在main 函数中验证。要求:宇符串在main函数中由键 盘输入
我不想直接给你答案,给你思路你可以自己实现以下 。
我实现类一个字符串降序排序得代码以及字符串转整数得代码,你参考一下,试着实现逻辑:
然后贴出来你的代码,如果有问题帮你看~
#include <algorithm>
#include <string>
using namespace std;
int Comp(const void* p1, const void* p2)
{
return strcmp((char*)p2, (char*)p1);
}
int main()
{
char a[3][10] = { "ccc","aaa" ,"ddd"};
qsort(a, 3, sizeof(a[0]), Comp);
printf("%s %s %s \n", a[0], a[1], a[2]);
const char* str = "123";
int d = atoi(str);
printf("%d \n", d);
return 0;
}
代码效果如下,可以的话请点击采纳答案。
采用任意一个排序算法即可实现,字符串的比较在c语言里面有相关的函数,最简单的可以采用冒泡排序
#include<stdio.h>
#include<string.h>
void str(char t[],int num[])
{
int len=strlen(t);
int j,i;
for(j=0; j<len-1; j++)
{
for(i=0; i<len-j-1; i++)
{
if(t[i]<t[i+1])
{
char tem=t[i];
t[i]=t[i+1];
t[i+1]=tem;
}
}
}
for(j=0; j<len; j++)
{
num[j]=t[j];
}
}
int main()
{
char t[150];
int num[150];
gets(t);
int len=strlen(t),j;
str(t,num);
printf("\n字符串降序排序:\n");
for(j=0; j<len; j++)
{
printf("%c ",t[j]);
}
printf("\n字排序后的字符串转换成整数数组:\n");
for(j=0; j<len; j++)
{
printf("%d ",num[j]);
}
return 1;
}
将一个字符串进行降序排序, 并将排序后的字符串转换成整数数组
主要可以分为两部分部分来实现:
第一部分:首先就是对字符串进行降序排序 这个可以用strcmp去比较 比较之后借助qsort排序函数进行排序就行了
第二部分:其次就是排序后如何将字符串转换成整数数组的问题,怎么转换呢?在c语言中,可以使用atoi()函数将字符串转化成整数型并输出,输出的时候进行存入数组就行了。
希望对题主有所帮助,可以的话,帮忙点个采纳!