关于二维字符数组函数操作需传递参数(二维字符数组、一维数组的指针、指针数组)

从主函数输入十个字符串,并且在函数里比大小。

1、二维数组

#include<stdio.h>
#include<string.h>
#define N 3
#define M 10
//字符型二维数组作为参数
int main(){
    void sortstr(char a[][M],int n);
    char a[N][M];//={"flw","dsfre","frge"};
    int i;
    for(i=0;i<N;i++){
        scanf("%s",a[i]);//a的行地址拿出来赋值
    }   
    sortstr(a,N);
    for(i=0;i<N;i++){
        printf("%s\n",a[i]);//以a的每行首地址输出
    }
    return 0;
}
void sortstr(char a[][M],int n){
    int i,j;
    char b[M];
    for(i=0;i<n;i++){
        for(j=i+1;j<n;j++){
            if(strcmp(a[i],a[j])>0){//当ai比aj大时,两个互换,最小的给ai
                strcpy(b,a[i]);
                strcpy(a[i],a[j]);
                strcpy(a[j],b);
            }
        }
    }

}

2、一维数组的指针

#include<stdio.h>
#include<string.h>
#define N 3
#define M 10
//用一维数组的指针作为函数参数  char(*p)[M]//[]运算在*前面,所以要把(*p)圈起来,这样就是一维数组的指针
int main(){ void sortstr(char (*a)[M],int n); char a[N][M];//={"flw","dsfre","frge"}; char (*p)[M];//为什么定义的M,保证p++走的步长是M int i; for(i=0;i<N;i++){ scanf("%s",a[i]); } p=a; sortstr(p,N); for(i=0;i<N;i++){ printf("%s\n",a[i]); } return 0; } void sortstr(char (*a)[M],int n){//这里的a代表了行的首地址,所以直接用a[i]的方式,可以找到对应的首地址 int i,j; char b[M]; for(i=0;i<n;i++){ for(j=i+1;j<n;j++){ if(strcmp(a[i],a[j])>0){ strcpy(b,a[i]); strcpy(a[i],a[j]); strcpy(a[j],b); } } } }

3、指针数组

#include<stdio.h>
#include<string.h>
#define N 3
#define M 10
//用指针数组
int main(){
    void sortstr(char *a[],int n);
    char a[N][M];//={"flw","dsfre","frge"};
    char *p[N];//定义是行的,因为指针数组里存储的是每一行的首地址
    int i;
    for(i=0;i<N;i++){//指针数组的每个指针都要赋值,要不然指针为空,找不到地方。
        p[i]=a[i];
    }  
    for(i=0;i<N;i++){
        scanf("%s",p[i]);
    } 
    sortstr(p,N);
    for(i=0;i<N;i++){
        printf("%s\n",p[i]);
    }
    return 0;
}
void sortstr(char *a[],int n){
    int i,j;
    char *t;
    for(i=0;i<n;i++){
        for(j=i+1;j<n;j++){
            if(strcmp(*(a+i),*(a+j))>0){
                strcpy(t,*(a+i));
                strcpy(*(a+i),*(a+j));
                strcpy(*(a+j),t);
            }
        }
    }

}

 

posted @ 2023-05-21 23:52  风中凌乱的猪头  阅读(582)  评论(0)    收藏  举报