精华内容
下载资源
问答
  • #include #include int main(void) { char str[3][20],*p[3],temp[20]; int i,j;...// p[I]为指针变量.p[I]指向行地址。 gets(p[i]); } for(i=0;i for(j=i+1;j { if( strcmp(p[i],p[j])
    #include <stdio.h>
    #include <string.h>
    int main(void)
    {
    char str[3][20],*p[3],temp[20];
    int i,j;
    for(i=0;i<3;i++)
    {
    p[i]=str[i];//  p[I]为指针变量.p[I]指向行地址。
    gets(p[i]);
    }
    for(i=0;i<3-1;i++)选择排序。
    for(j=i+1;j<3;j++)
    {
    if( strcmp(p[i],p[j])>0)
    {
    strcpy(temp,p[i]);
    strcpy(p[i],p[j]);
    strcpy(p[j],temp);
    }
    }
    printf("排序后的字符串为:\n");
    for(i=0;i<3;i++)
    puts(p[i]);

    return 0;}

    //我们了解要存取多个字符串,用二维数组简单。首先要理解指针数组。*p[20]。[ ]比*的优先级高。是指针数组。顾名思义,就是每一个数组元素都是一个指针变量。

    排序就是利用选择排序。(不懂排序自己去了解)。这里不做解释



    展开全文
  • 根据字符串第一个字母,运用冒泡排序字符串数组。 例如 {"student","tree","new","bee"} 排序后为 {"bee","new","student","tree"} 代码 /* ==================================================================...

    指针地址灵活运用

    根据字符串第一个字母,运用冒泡排序字符串数组。
    例如

    {"student","tree","new","bee"}
    

    排序后为

    {"bee","new","student","tree"}
    

    代码

    /*
     ============================================================================
     Name        : day09.c
     Author      : ccc
     Version     :
     Copyright   : Your copyright notice
     Description : Hello World in C, Ansi-style
     ============================================================================
     */
    
    #include <stdio.h>
    #include <stdlib.h>
    
    void sort(char ** arr,int len){
    	for(int i = 0;i<len - 1 ;i++){
    		for(int j = 0;j<len - i - 1;j++){
    			//指针方式
    			if(**(arr+j) < **(arr+j+1)){
    				char * temp = *(arr+j);
    				*(arr+j) = *(arr+j+1);
    				*(arr+j+1) = temp;
    			}
    		}
    	}
    }
    
    
    void sort2(char ** arr,int len){
    	for(int i = 0;i<len - 1 ;i++){
    		for(int j = 0;j<len - i - 1;j++){
    			//数组方式
    			if(arr[j][0] < arr[j+1][0]){
    				char * temp = arr[j];
    				arr[j] = arr[j+1];
    				arr[j+1] = temp;
    			}
    		}
    	}
    }
    
    
    void sort3(char ** arr,int len){
    	for(int i = 0;i<len - 1 ;i++){
    		for(int j = 0;j<len - i - 1;j++){
    			//一半指针,一半数组
    			if(*arr[j] > *arr[j+1]){
    				char * temp = arr[j];
    				arr[j] = arr[j+1];
    				arr[j+1] = temp;
    			}
    		}
    	}
    }
    
    int main() {
    
    
    	char *arr[] = {"student","tree","new","bee"};
    	sort3(arr,4);
    	for(int i = 0;i<4;i++){
    		printf("%s\n",arr[i]);
    	}
    
    	return EXIT_SUCCESS;
    }
    

    总结

    如图

    *定义* *说明*
    int i 定义整形变量
    int *p 定义一个指向int的指针变量
    int a[10] 定义一个有10个元素的数组,每个元素类型为int
    int *p[10] 定义一个有10个元素的数组,每个元素类型为int*
    int func() 定义一个函数,返回值为int型
    int *func() 定义一个函数,返回值为int *型
    int **p 定义一个指向int的指针的指针,二级指针
    展开全文
  • c语言 字符串排序

    千次阅读 2016-03-17 08:55:16
    用指向指针指针的方法对5个字符串排序并输出。要求将排序单独写成一个函数。字符串和n在主函数中输入。最后在主函数中输出。 输入 n和n个字符串 输出 排序后的字符串 样例输入 5 12345 ...

    问题:

    题目描述

    用指向指针的指针的方法对5个字符串排序并输出。要求将排序单独写成一个函数。字符串和n在主函数中输入。最后在主函数中输出。

    输入

    n和n个字符串

    输出

    排序后的字符串

    样例输入

    5
    12345
    123
    abce
    abcde
    abcd

    样例输出

    123
    12345
    abcd
    abcde
    abce

    提示

    /* C代码 */

    int main()

    {

        void sort(char **,int );

        int i,n;

        char **p,*pstr[20],str[20][80];

        scanf("%d",&n);

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

            pstr[i]=str[i];

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

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

        p=pstr;

        sort(p,n);

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

            printf("%s\n",pstr[i]);

        return 0;

    }



    /* C++代码 */

    int main()

    {

        void sort(char **,int );

        int i,n;

        char **p,*pstr[20],str[20][80];

    cin>>n;

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

            pstr[i]=str[i];

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

            cin>>pstr[i];

        p=pstr;

        sort(p,n);

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

            cout<<pstr[i]<<endl;

        return 0;

    }

    #include<stdio.h>
    #include<string.h>
    int sort(char **p,int n)
    {
        int i,j;
        char t[80];
        for(i=0;i<n-1;i++)
        {
            for(j=i+1;j<n;j++)
            {
                if(strcmp(p[i],p[j])>0)
                {
                    strcpy(t,p[i]);
                    strcpy(p[i],p[j]);
                    strcpy(p[j],t);
                }
            }
        }
        return 0;
    }
    int main()
    {
        void sort(char **,int );
        int i,n;
        char **p,*pstr[20],str[20][80];
        scanf("%d",&n);
        for (i=0; i<n; i++)
            pstr[i]=str[i];
        for (i=0; i<n; i++)
            scanf("%s",pstr[i]);
        p=pstr;
        sort(p,n);
        for (i=0; i<n; i++)
            printf("%s\n",pstr[i]);
        return 0;
    }
    

    总结:

    <string.h>包含的函数中,strcmp用来比较,大于零就是前面的大。strcpy用来复制函数,后一个复制到前一个上面。

    展开全文
  • 下面这个没有用指针,直接改变原字符串数组,是用冒泡排序 也是正确的 ``` #include #include #define N 5 int main() { char ptr[N][80]={ "how ","are ","you ","i","fine" }; char temp[80]; int ...
  • 一、【计算机编程】【C语言指针试题】有下面四个C程序代码语句:char array1[] = "I love C";char array2[] = "I love C";char *pChar1 = "I love C";char *pChar2 = "I love C";printf("array1 == array2吗? %dn", ...

    一、【计算机编程】【C语言指针试题】

    有下面四个C程序代码语句:

    char array1[] = "I love C";

    char array2[] = "I love C";

    char *pChar1 = "I love C";

    char *pChar2 = "I love C";

    printf("array1 == array2吗? %dn", array1 == array2);

    printf("pChar1 == pChar2吗? %dn", pChar1 == pChar2);

    请问两条C程序printf语句会输出什么?

    二、【计算机编程】【C语言指针答疑】

    1、“己他”概念来解题

    这道C语言指针题考察了字符数组、常量字符串、指向字符的指针等知识点,看上去让人“眼花缭乱”。使用我提出的C语言指针“己他”中的“己值”、“他址”概念以及“指针运算”来解这道题是很简单的,这些概念在我的专栏:

    的第九章、第十章、第十三章有详细的阐述,如下:

    第九章:

    第十章:

    第十三章:

    2、C程序代码

    我来把这道C语言指针题扩展成一段C程序代码,如下:

    e41e10e2c08faf4235eea11c7556b913.png

    C程序代码

    这段C程序代码我定义了两个字符数组array1和array2,各自保存了一个字符串"I love C",紧接着又定义了两个指针变量pChar1、pChar2,指向两个字符串"I love C"。运行结果如下:

    2e300f91a040decf94874ed56b8be192.png

    C程序运行结果

    这个结果就是上述C程序试题答案。

    3、C程序代码分析

    3.1 分析1

    在C程序代码的第5行和第6行有如下语句:

    两个字符数组虽然保存的字符串看上去是一样的,都是"I love C",其实这两个字符串在内存中位于不同的位置。

    从运行来看,字符数组array1的第一个元素地址是22feaf,而数组名array1的己值也是22feaf。我在专栏中提到过,数组名array1这种C代码写法就是第一个元素的地址,也就是说array1的己值22feaf这个数字的含义就是“他址”,他人(array1[0])的地址。

    从运行来看,字符数组array2的第一个元素地址是22fea6,而数组名array2的己值也是22fea6,也就是说array2的己值22fea6这个数字的含义就是“他址”,他人(array2[0])的地址。

    C程序代码第17行如下语句:

    这种C程序代码写法就是用指针变量的己值做比较运算。array1的己值是22feaf,array2的己值是22fea6,它们相等吗?当然不相等,所以输出:0!

    3.2 分析

    在C程序代码的第7行和第8行有如下语句:

    两个指针变量指向的字符串看上去是一样的,都是"I love C",而且这两个字符串就是同一个,也就是说在内存中位于一个位置,这就是常量字符串!

    从运行来看,指针变量pChar1的己值是404000。我在专栏中提到过,指针变量pChar1的己值就是常量字符串"I love C"的第一个字符的地址,也就是字符‘I'的地址。

    从运行来看,指针变量pChar2的己值也是404000,与指针变量pChar1的己值相等,这再次说明指针变量pChar1和pChar2指向的是同一个字符串。

    C程序代码第18行如下语句:

    这种C程序代码写法就是用指针变量的己值做比较运算。既然两个指针变量的己值相等,所以输出:1!

    三、C语言指针试题总结

    这道C语言指针试题看上去难吗?还是在我提出的“己他”概念范围内,所以我一直跟同学们说“C语言指针就是个纸老虎”!

    展开全文
  • 7-2 字符串排序 (20分) 本题要求编写程序,读入5个字符串,按由小到大的顺序输出。 输入格式: 输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。 输出格式: 按照...
  • 喜欢的同学记得点赞、转发、收藏哦~后续C语言经典100例将会以pdf和代码的形式发放到公众号欢迎关注:计算广告生态 即时查收1 题目函数:sort()功能:使用指向指针指针字符串排序描述:使用指向指针指针字符...
  • 喜欢的同学记得点赞、转发、收藏哦~后续C语言经典100例将会以pdf和代码的形式发放到公众号欢迎关注:计算广告生态 即时查收1 题目函数:sort()功能:使用指向指针指针字符串排序描述:使用指向指针指针字符...
  • 例81:C语言实现用指向指针指针的方法对5个字符串排序并输出。 解题思路:读者看着道题的时候,首先要知道什么时指针,指向指针指针应该怎么用,一般在开发中不这样用,读者要看明白,这个很锻炼思维的。 C语言...
  • printf("排序前的数组为:"); for (i = 0; i ; i++) { printf("%s ", strings[i]); } printf("\n"); change(n, strings); printf("排序后的数组为:"); for (i = 0; i ; i++) { printf("%s ", strings[i]...
  • 用指向指针指针的方法对5个字符串排序并输出
  • // 习题8.20: (指针)用指向指针的方法对5个字符串排序并输出 #include<stdio.h> #include<string.h> // 将字符串进行排序并输出 void fun(char (*p)[100]) { char s[100]; for (int i = 0; i < 5;...
  • 2426: C语言习题 字符串排序 时间限制:1 Sec内存限制:128 MB 提交:262解决:164 题目描述 用指向指针指针的方法对5个字符串排序并输出。要求将排序单独写成一个函数。字符串和n在主函数中输入。最后在...
  • 2426: C语言习题 字符串排序 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 1006 Solved: 625 [Submit][Status][Web Board] Description 用指向指针指针的方法对5个字符串排序并输出。要求将...
  • 根据字符串首字符 按照a-z的顺序排序 student tree new bee => bee new student tree 使用三种方法比对两个字符串的首字母: 1数组判断 2指针判断 3混合判断 公共部分: #include<stdio.h> #include<...
  • 喜欢的同学记得点赞、转发、收藏哦~后续C语言经典100例将会以pdf和代码的形式发放到公众号欢迎关注:计算广告生态 即时查收1 题目函数:sort()功能:使用指向指针指针字符串排序描述:使用指向指针指针字符...
  • 题目:输入3个字符串,按由小到大的顺序输出 #include&lt;stdio.h&gt; #include&lt;string.h&gt; int main() { void swap(char *p1,char *p2); char *a,*b,*c; char r[30],s[30],t[30]; ...
  • C语言读取字符串,并对字符串排序

    千次阅读 2014-04-12 12:23:46
    #include #include #define SIZE 81 //每行的字符长度限制 #define LIM 20 //最多读取行数 #define HALT " " //用空字符串终止输入 ...//字符串指针排序函数 int main (void){ char input[LIM][SIZE]; c
  • 指针数组比较适合用来指向若干个字符串,使字符串处理起来更加灵活 例:将若干字符串按字母顺序(从小到大)输出 思路: 定义指针数组name,用各字符串对它进行...//对字符串排序,(冒泡排序法) #include <...
  • printf("请输入三个字符串\n"); gets(a); gets(b); gets(c); p=a; q=b; m=c; printf("排序如下;\n"); max(p,q,m); puts(p);puts(q);puts(m); } void max(char *x,char *y,char *z) { char *t; if(strcmp...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 273
精华内容 109
关键字:

c语言字符串排序指针

c语言 订阅