精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

C語言字符串排序函數指針 C語言指針排序

C語言:從鍵盤輸入長度為10的字符串,除第一和最后一個字符外按降序排序,編寫函數指針傳遞完成,咋寫?

代碼文本:

創新互聯建站于2013年創立,是專業互聯網技術服務公司,擁有項目成都網站制作、做網站、外貿營銷網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元郟縣做網站,已為上家服務,為郟縣各地企業和個人服務,聯系電話:18980820575

#include "stdio.h"

#define N 10

void myf(char *p){

char i,j,k,n;

for(n=0;p[n];n++);

for(n--,i=1;in-1;i++){

for(j=(k=i)+1;jn;j++)

if(p[k]p[j])

k=j;

if(k!=i)

j=p[k],p[k]=p[i],p[i]=j;

}

}

int main(int argc,char *argv[]){

char s[N+1];

printf("Enter a string(length 10)...\n");

scanf("%10s",s);

printf("After ordering:\n");

myf(s);

puts(s);

return 0;

}

c語言 指針 字符串 排序

對指針數組分配個長度

可以這樣

{

s[i]

=

(char

*)malloc(sizeof(char)

*

1024);

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

}

最后記得釋放

for(i=0;iz;i++)

{

printf("%s:\t",s[i]);

free(s[i]);

}

字符串數組排序(C語言)(qsort庫函數)

聲明一個字符串指針數組存放每個字符串的首地址,調用庫函數qusort按題目要求對字符串指針排序,不移動源字符串。關鍵是要設計一個好的比較函數,精巧地解決“按長度、長度相等時按大小”排序的問題。舉例代碼如下:

//#include?"stdafx.h"http://If?the?vc++6.0,?with?this?line.

#include?"stdio.h"

#include?"string.h"

#include?"stdlib.h"

#define?N?10 //字符串個數

#define?LN?21 //限制字符串長度為20

int?mycmp(const?void?*a,const?void?*b){//比較函數

char?*pa=*(char?**)a,*pb=*(char?**)b;

int?x=int(strlen(pa)-strlen(pb));//依長度比較

return?x???x?:?strcmp(pa,pb);//長度相等時依大小比較

}

int?main(void){

int?i=0,j=0;

char?*f[N],w[LN*N];//聲明指針數組f和字符串總空間

printf("Input?%d?string(s)(length=%d)...\n",N,LN);

while(iN){//輸入并將字符串首址賦給f[i]

if(scanf("?%[1234567890]",f[i]=w+j)0??strlen(f[i])LN)

i++,j+=LN;

else?printf("Error,?redo:?Required?length?less?than?%d:",LN);

}

qsort(f,N,sizeof(char?*),mycmp);//調用庫函數對字符串指針排序

for(i=0;iN;printf("%s\n",f[i++]));//輸出...

return?0;

}

c語言用指針數組對10個字符串排序(形參是如何影響原函數的?)

C里面的字符串最后都是以數0(也就是

'\0'

這個符號)來表示結尾的。

計算字符串的長度的函數在頭文件string.h已經提供了,也就是這個strlen(const

char

*)。

然后呢,就是表示字符串的數組了,在C里字符串雖然是數組實現的,但現在這個字符串數組的意思卻是“由字符串組成的數組”,而不是“組成字符串的數組”。

字符串是數組,是字符數組,數組的名稱就是這個數組的首地址,字符串的名稱就是這個字符串的首地址,存放字符串的數組存放的那就是首地址了,也好辦,就是:

char

**array;

我們來具體給他賦值:

1,給這個存放首地址的數組分配內存空間

int

Size=10;

char

**array=(char

**)malloc(

Size

*

sizeof(char

*)

);

2,然后給它的每一個元素賦上每一個字符串的首地址

array[0]="什么JB玩意";

array[1]="逗你玩呢";

....

3,然后根據字符串長度排序:

int

i;

char

*swap;

for(i=0;iSize-1;i++){

if(strlen(array[i])strlen(array[i+1])){

swap=array[i];

array[i]=array[i+1];

array[i+1]=swap;

}

}

4,排序好后輸出:

for(i=0;iSize;i++)

printf(array[i]);

好了,就這些了

C語言用指針對多個字符串排序的問題

if(strcmp(str[i],str[j]0))寫錯了,應該是if(strcmp(str[i],str[j])0)。

這函數排序對象是char *型指針,所以主調函數中應該是char *a[5]={"jf","ufdiso",...};這倦定義的指針數組,而不能是char a[][5]這種類型的二維數組——因為這樣定義的數組名是常指針,不能另外賦值……舉例如下:

#include?"stdio.h"

#include?string.h

void?sort(char?*str[],int?n){

int?i,j;

char?*p;

for(i=0;in-1;i++)

for(j=i+1;jn;j++)

if(strcmp(str[i],str[j])0)//你的代碼這里寫錯了

p=str[i],str[i]=str[j],str[j]=p;

}

int?main(int?argc,char?*argv[]){

char?*a[5]={"12345","hfdjsk","ABCDE","iunvuu876","fff"};//這樣定義

//而不能char?a[][5]...這樣定義

sort(a,5);

printf("%s\n%s\n%s\n%s\n%s\n",a[0],a[1],a[2],a[3],a[4]);

return?0;

}

運行結果:

c語言如何用指針排列字符

#include?stdio.h

#include?string.h

void?sort_str(char?*str)?{?//?選擇排序

//待補全部分

int?i,j,k,t,len?=?strlen(str);

for(i?=?0;?i??len?-?1;?++i)?{

k?=?i;

for(j?=?i?+?1;?j??len;?++j)?{

if(str[k]??str[j])

k?=?j;

}

if(k?!=?i)?{

t?=?str[k];

str[k]?=?str[i];

str[i]?=?t;

}

}

}

int?main()?{

char?str[101];

scanf("%s",?str);

sort_str(str);//對字符串進行排序

printf("%s\n",?str);

return?0;

}


當前題目:C語言字符串排序函數指針 C語言指針排序
當前URL:http://m.jcarcd.cn/article/hhoech.html
主站蜘蛛池模板: 欧洲1区2区3区 | 国产人在 | 91国内| 日韩福利在线观看 | 国产手机免费视频 | 国产欧美精 | 国产原创导航 | 日韩成人精品二区 | 精品视频在线三区 | 日本高清无卡 | 中文字幕乱码免费不 | 日本在线视频 | 成人永久免费永久在 | 日本精品免费 | 蜜臀tv| 精品国产乱码 | 国产福利在线观 | 午夜福利手机看片 | 国产精品视频露脸 | 国产喷水福利 | 精品日韩成人欧美 | 欧洲色综合 | 国产自产免费在线 | 91神马| 日韩精品人成在线播 | 国产精品视频免费 | 最新国产精品拍自在线播放 | 精品精品国产自 | 91网视频网 | 欧美在线激情视频 | 日本三级欧美三级 | 国产区免 | 精品综合在线观看! | 国产欧美一级精品 | 日韩成人一区三区 | 福利写真影院 | 国产日韩欧美福利 | 国产精品毛| 91国高清视频 | 日韩午夜激情视频 | 日韩一A|