当前位置:首页 » 编程语言 » c语言字符串排序用string函数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言字符串排序用string函数

发布时间: 2022-07-17 16:03:24

1. c语言调用函数为字符串排序

最后,printf 里面应该是 str 不是str[SIZE]吧

我也初学者, 不一定对,

2. C语言中 字符串怎么排序

直接借助冒泡排序,选择排序即可进行字符串的排序,但是需注意的是,字符串的比较需要借助strcmp函数完成,而字符串的复制需要借助strcpy函数完成。

示例代码如下:

#include"stdio.h"
#include"string.h"
voidsort(chararray[][20],intn);
main(void)
{
charstr[10][20];
inti,j,k,n;
printf("inputn(n<=10):");
scanf("%d",&n);
printf("input%dstring:",n);
for(i=0;i<n;i++)
gets(str[i]);//输入N个字符串
sort(str,n);//对输入的字符串排序
printf("sortstring: ");
for(i=0;i<n;i++)
puts(str[i]);
return0;
}
voidsort(chararray[][20],intn)//定义排序函数
{
chartemp[20];
inti,j,k;
for(i=1;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp(array[k],array[j])>0)
k=j;
if(k!=i)
{
strcpy(temp,array[i]);//字符串交换顺序
strcpy(array[i],array[k]);
strcpy(array[k],temp);
}
}
}

3. c++怎样用cstring类的成员函数实现对字符串的排序

char* ptr1=new char();//三个指针
char* ptr2=new char();
char* ptr3=new char();
cin>>ptr1>>ptr2>>ptr3;//输入学号
char* temp=new char();
if(strcmp((const char*)ptr1,(const char*)ptr2))//就相比INT大小那样比较就可以了

4. 如何用C语言编程对字符串进行排序

用strcmp函数(需要包含string.h)可以比较两个字符串的大小
其他就和数的排序没什么两样

5. c语言 字符串排序并输出用string函数

#include <stdio.h>
#include <string.h>

void main() {
int i,p;
char a[10][20],string[20];
for(i = 0; i < 10;i++) gets(a[i]);
printf("排序前 :\n");
for(i = 0;i < 10;++i) printf("%s ",a[i]);
printf("\n");
for(p = 9;p > 0;p--) {
for(i = 0;i < p;i++) {
if(strcmp(a[i],a[i + 1]) > 0) {
strcpy(string,a[i]);
strcpy(a[i],a[i + 1]);
strcpy(a[i+1],string);
}
}
}
printf("排序后 :\n");
for(i = 0;i < 10;++i) printf("%s ",a[i]);
printf("\n");
}

6. C语言中如何将10个字符串进行排序

#include<stdio.h>

#include<string.h>

int main()

{

int j,k,i,t,n;

char s[10][10],b[10][10];

for(i=0;i<10;i++)

{

scanf("%s",s[i]);

}

n=strlen(s[1]);

k=0;

for(i=0;i<9;i++)

{

for(j=0;j<9-i;j++)

if(strcmp(s[j],s[j+1])>0)

{

for(k=0;k<n;k++)

b[j][k]=s[j][k];

for(k=0;k<n;k++)

s[j][k]=s[j+1][k];

for(k=0;k<n;k++)

s[j+1][k]=b[j][k];

}

}

for(i=0;i<10;i++)

{

printf("%s ",s[i]);

}

return 0;

}

运行效果:

(6)c语言字符串排序用string函数扩展阅读:

scanf函数用法:

scanf("输入控制符",输入参数);

功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。

用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志。所以题中函数输出的值只有空格前面的部分。

如果想要输出包括空格在内的所有数据,可以使用gets()函数读入数据。gets()函数的功能是读取字符串,并存放在指定的字符数组中,遇到换行符或文件结束标志时结束读入。换行符不作为读取串的内容,读取的换行符被转换为字符串结束标志''。

7. c语言编写函数strsort实现N个字符串排序

问题比较多:
在交换那里,不能直接用赋地址来给新串赋值,要给临时串申请新同大小的空间,然后用strcpy来实现赋值完成交换。
在录入字符串时,误用%s,应用%c。或者是p而不是p[i]
下面给个我修改的程序:
#include <stdio.h>
#include <string.h>
#include <malloc.h>

void SortStr(char *a[], int n)
{
char *temp = (char *)malloc(sizeof(char) * 200);

int i, j;

for (i = 0; i < n - 1; i++)
for (j = i + 1; j < n; j++)
if (strcmp(a[i], a[j]) > 0)
{
strcpy(temp, a[j]);
strcpy(a[j], a[i]);
strcpy(a[i], temp);
}

free(temp);
}

int main()
{
char p[200], *q[200];
int n, i;

printf("请输入字符串个数:");
scanf("%d", &n);
if (n >= 200) {
puts("Overflow!");
return 0;
}

for (i = 0; i < n; i++)
{
scanf("%s", p);
q[i] = (char *)malloc(sizeof(char) * strlen(p));
strcpy(q[i], p);
}

SortStr(q, n);

for (i = 0; i < n; i++)
{
printf("%s\t", q[i]);
free(q[i]);
}
printf("\n");

return 0;
}

8. C语言字符串快速排序函数


#include<stdio.h>
#include<string.h>
#include<stdlib.h>

typedefcharstrLINE[2000];
intstrCMP(constvoid*a,constvoid*b)
{
returnstrcmp((constchar*)a,(constchar*)b);
}
intmain(intargc,char*argv[])
{
strLINE*p;
inti,n;
scanf("%d",&n);
p=malloc(sizeof(strLINE)*n);
for(i=0;i<n;i++)scanf("%s",p[i]);

qsort(p,n,sizeof(strLINE),strCMP);

for(i=0;i<n;i++)printf("%s ",p[i]);

free(p);
return0;
}