字符串排序-C语言实例

简介: 字符串排序-C语言实例

1、简单的字符串排序

给定有限个字符串,将其按照大小顺序排列。此时的大小顺序简单来说我们可以先认为是ASCLL码的大小顺序。由此我们只需要比较字符串的ASCLL码的大小即可。


2、算法设计

1、输入10个字符串;


2、任选一种排序算法对字符串排序,比较时需要使用strcmp, 复制时需要使用strcpy。


3、输出排序后的结果。


3、算法优化

字符串比较使用strcmp无法优化, 但每次将字符串整体复制,交换值,效率偏低,使用字符指针数组存储每个字符串的地址,排序时交换指针性能更好。


4、C语言代码实例

#include<stdio.h>

#include <string.h>

//微信公众号:C语言与CPP编程 2020.05.02


int main()

{

int i, j;

char str[10][50], temp[50];

printf(“输入10个单词:\n”);


for(i=0; i<10; ++i) {
    scanf("%s[^\n]",str[i]);
}
for(i=0; i<9; ++i) {
    for(j=i+1; j<10 ; ++j)
    {
       if(strcmp(str[i], str[j])>0)
       {
           strcpy(temp, str[i]);
           strcpy(str[i], str[j]);
           strcpy(str[j], temp);
      }
    }
}
printf("\n排序后: \n");
for(i=0; i<10; ++i)
{
    puts(str[i]);
}
return 0;

输入如下所示:


C

C++

Java

PHP

Python

Perl

Ruby

R

JavaScript

PHP

输出如下所示:


C

C++

Java

JavaScript

PHP

PHP

Perl

Python

R

Ruby




相关文章
|
6天前
|
NoSQL 程序员 Redis
C语言字符串的设计缺陷
C语言字符串的设计缺陷
20 1
|
25天前
|
存储 数据处理 C语言
C语言高级应用探讨与实例
C语言高级应用探讨与实例
24 1
|
21小时前
|
C语言
C语言学习笔记之初识字符串
C语言学习笔记之初识字符串
17 5
|
19小时前
|
C语言
c语言左旋字符串问题(不同方法超详细解答)
c语言左旋字符串问题(不同方法超详细解答)
6 1
|
19天前
|
安全 编译器 C语言
C语言学习记录——字符串相关函数及部分模拟(strcmp、strncmp、strncat、strncpy、strstr、strtok、strerror)
C语言学习记录——字符串相关函数及部分模拟(strcmp、strncmp、strncat、strncpy、strstr、strtok、strerror)
15 1
|
19天前
|
C语言
C语言学习记录——模拟字符串相关函数(strcpy、strlen、strcat)相关知识-const、typedef
C语言学习记录——模拟字符串相关函数(strcpy、strlen、strcat)相关知识-const、typedef
13 1
|
20天前
|
算法 C语言
C语言——oj刷题——字符串左旋和轮转数组
C语言——oj刷题——字符串左旋和轮转数组
12 1
|
26天前
|
存储 C语言
字符串的引用方式在C语言中的探讨
字符串的引用方式在C语言中的探讨
22 5
|
11天前
|
C语言
C语言——字符串操作函数
C语言——字符串操作函数
9 0
|
20天前
|
C语言
C语言——oj刷题——实现字符串逆序
C语言——oj刷题——实现字符串逆序