當前位置:首頁 » 編程語言 » c語言字元串排序

c語言字元串排序

發布時間: 2022-01-23 06:27:26

① 用c語言對字元串分類排序

加點分吧,我花了一個多小時啊
#include"stdio.h"
char d[20],e[20],f[20];
void sort(char s[])
{
int i,j,k,len=0;
char t;
while(s[len])len++;
for(i=0;i<len-1;i++)
{
k=i;
for(j=i+1;j<len;j++)
if(s[k]>s[j])k=j;
if(k!=i)
{
t=s[i];
s[i]=s[k];
s[k]=t;
}
}
}
void fun(char *p)
{
char *a,*b,*c,g[30];
int i,j,k;
a=d;
b=e;
c=f;
for(;*p!='\0';p++)
{
if(*p>='A'&&*p<='Z')
*a++=*p;
else if(*p>='a'&&*p<='z')
*b++=*p;
else
*c++=*p;
}
*a='\0';
*b='\0';
*c='\0';
sort(d);
sort(e);
sort(f);
p=g;
i=j=k=0;
while(*p++=d[i++]);
p--;
while(*p++=e[j++]);
p--;
while(*p++=f[k++]);
*p='\0';
puts(g);
}
void main()
{
char s[30];
void fun(char *p);
void sort(char *q);
gets(s);
fun(s);

}

② C語言字元排序

for循環那一行後面多了一個分號

③ C語言字元串排序

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

int main(void)
{
char str[128], ch;
int i, j;
printf("input the string:\n ");

for (i=0; i<127; i++)
{
scanf("%c", &str[i]);//不會是因為這里你沒寫取地址符吧o_O???!
if (str[i] == '\n')
{
break;
}
}
str[i] = '\0';

for (i=0; str[i]; i++)
{
for (j=i+1; str[j]; j++)
{
if (str[i] > str[j])
{
ch = str[i];
str[i] = str[j];
str[j] = ch;
}
}
}
printf("\nResult:%s\n", str);
return 0;
}

④ c語言字元串排序

你有兩個錯誤,一是C的變數定義必須在所有語句之前,二是字元串不能賦值,必須使用strcpy函數,修改後的程序代碼和運行結果如下:

$ cat a.c

#include<stdio.h>
#include<string.h>
void Solve();
void sort(char *name[], int n);
int main()
{
Solve();
return 0;
}
void Solve()
{
int i,n;
char name[100][100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
gets(name[i]);
}
sort(name,n);
for(i=0;i<n;i++)
{
puts(name[i]);
}
}
void sort(char *name[100], int n)
{
int i,j,k;
char *temp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++) if(strcmp(name[k],name[j])>0) k=j;
if (k!=i)
{
{
strcpy(temp,name[i]);
strcpy(name[i],name[k]);
strcpy(name[k],temp);
}
}
}
}

$ cc a.c
"a.c", line 19: warning #2167-D: argument of type "char (*)[100]" is
incompatible with parameter of type "char **"
sort(name,n);
^

$ a.out
6dkjlfhgjkshdfjkgh
1kdfghj
3dkjfhghd
2dlkfjgklj
5ldfkhlkj
4dflkghklj

1kdfghj
3dkjfhghd
2dlkfjgklj
5ldfkhlkj
4dflkghklj

$ cc -V

cc: HP C/aC++ B3910B A.06.25 [Nov 30 2009]
/cq/u/cqjsdba/ygb>

⑤ 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;

}

運行效果:

(5)c語言字元串排序擴展閱讀:

scanf函數用法:

scanf("輸入控制符",輸入參數);

功能:將從鍵盤輸入的字元轉化為「輸入控制符」所規定格式的數據,然後存入以輸入參數的值為地址的變數中。

用scanf()函數以%s格式讀入的數據不能含有空白符時,所有空白符都被當做數據結束的標志。所以題中函數輸出的值只有空格前面的部分。

如果想要輸出包括空格在內的所有數據,可以使用gets()函數讀入數據。gets()函數的功能是讀取字元串,並存放在指定的字元數組中,遇到換行符或文件結束標志時結束讀入。換行符不作為讀取串的內容,讀取的換行符被轉換為字元串結束標志''。

⑥ C語言,一個字元串按字母排序

排序演算法有問題,而且,你最好確定一下你輸入字元串的長度:

#include<stdio.h>
#include<string.h>
voidmain()
{
charc[10];
inti;
intj;
inttemp;
intlength;
gets(c);
length=strlen(c);//你可能輸入不到10個字元,所以確定總共字元數
for(i=0;i<length-1;i++)//for(i=0;i<9;i++)
for(j=0;j<length-1-i;j++)//這兒問題最大for(j=0;j<9;j++)
if(c[j]>c[j+1])
{
temp=c[j];
c[j]=c[j+1];
c[j+1]=temp;
}
puts(c);
}

⑦ c語言字元串排序是什麼

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

void Swap1(char s[3][128])
{
char tmp[128] = {0};
int i, j;
for (i = 0; i < 2; ++i)
{
for (j = 0; j < 2; ++j)
{
if (strcmp(s[j], s[j+1]) > 0)
{
strcpy(tmp, s[j]);
strcpy(s[j], s[j+1]);
strcpy(s[j+1], tmp);
}
}
}
}

int main(void)
{
char s[3][128];
scanf(" %s %s %s", s[0], s[1], s[2]);
Swap1(s);
printf("%s %s %s\n", s[0], s[1], s[2]);
return 0;
}

⑧ c語言字元串排序問題!

main()
{
char st[100],cs[3][100]; //假設該字元串長度都在100個以內
int i,j,p;
printf("please input strings one by one:\n");
for(i=0;i<3;i++)
gets(cs[i]); //讀取字元串,放在CS數組裡面
printf("\n");
for(i=0;i<3;i++)
{ p=i;strcpy(st,cs[i]);//把CS數組中第i+1行的字元串拷貝給st數組
for(j=i+1;j<3;j++)
if(strcmp(cs[j],st)>0) {p=j;strcpy(st,cs[j]);}//把st(也就是CS〔i〕依次跟它後面的按照ASCII碼順序(strcmp)比較.CS〔j]大的話,就把它拷貝給st數組(也就是給ST數重賦值)。
if(p!=i) //如果p!=i的話,那麼說明cs[i]的後面有一個cs[p]比它大
{
strcpy(st,cs[i]);
strcpy(cs[i],cs[p]);
strcpy(cs[p],st);
}//交換cs[i]和cs[p]的值,目的是把cs[p](ASCII碼比較大的)的值放到前面,
puts(cs[i]);//輸出cs[i],這個時候的cs[i]是跟在它後面的所有元素比較過的,它是在後面所有元素裡面最大的。
} //3次循環,按從大到小分別3次輸出cs[i]
printf("\n");
}

你要是想比較N個字元串的話,可以把裡面的3改成N就行了。

⑨ C語言字元升序排列~

voidmain()

{

charc[10];

inti;

intj;

inttemp;

intlength;

gets(c);

length=strlen(c);//你可能輸入不到10個字元,所以確定總共字元數

for(i=0;i<length-1;i++)//for(i=0;i<9;i++)

for(j=0;j<length-1-i;j++)//這兒問題最大for(j=0;j<9;j++)

if(c[j]>c[j+1])

{

temp=c[j];

c[j]=c[j+1];

c[j+1]=temp;

}

puts(c);

}



⑩ 字元串排序 C語言編程

#include&lt;stdio.h&gt;

#include&lt;string.h&gt;

#define SIZE 91

#define LIM 31

#define HALT""

void stsrt(char*strings[],int num);

int main(void)

{

char input[LIM][SIZE];

char*ptstr[LIM];

int ct=0;

int k=0;

printf("input up to%d lines,and I will sort them. ",LIM);

printf("To stop,press the enter key at a line's start. ");

while(ct&lt;LIM&&gets_s(input[ct],100)!=NULL&&input[ct][0]!='')

{

ptstr[ct]=input[ct];

ct++;

}

stsrt(ptstr,ct);

puts(" here's the sorted list: ");

for(k=0;k&lt;ct;k++)

{

puts(ptstr[k]);

}

puts(" here's the list: ");

for(k=0;k&lt;ct;k++)

{

puts(input[k]);

}

return 0;

}

void stsrt(char*strings[],int num)

{

char*temp;

int top,seek;

for(top=0;top&lt;num-1;top++)

{

for(seek=top+1;seek&lt;num;seek++)

{

if(strcmp(strings[top],strings[seek])&gt;0)

{

temp=strings[top];

strings[top]=strings[seek];

strings[seek]=temp;

}

}

}

(10)c語言字元串排序擴展閱讀:

printf函數使用注意事項

1、域寬

%d:按整型數據的實際長度輸出。

如果想輸出指定寬度可以指定域寬,%md--&gt;m域寬,列印出來以後,在控制台上,顯示m位;

如果我們要列印的數的位數如果超過我們設定m則原樣輸出;

如果我們要列印的數的位數如果小於我們設定的位數,則補空白,具體如下:

如果m為正數,則左對齊(左側補空白);

如果m為負數,則右對齊(右側補空白)。

2、轉義字元

如果想輸出字元"%",則應該在「格式控制」字元串中用連續兩個%表示。

如:printf("%f%%",1.0/3);輸出結果:0.333333%。

熱點內容
怎樣編譯一個背單詞系統 發布:2024-11-14 11:54:47 瀏覽:176
傳奇這個配置怎麼樣 發布:2024-11-14 11:48:25 瀏覽:376
配置橫向防火牆是什麼意思 發布:2024-11-14 11:42:34 瀏覽:731
手機緩存文件能打開嗎 發布:2024-11-14 11:41:00 瀏覽:492
存儲系統集成 發布:2024-11-14 11:14:54 瀏覽:584
雲伺服器搭建方法圖解 發布:2024-11-14 11:14:53 瀏覽:309
挑戰伺服器吃雞是什麼 發布:2024-11-14 10:59:07 瀏覽:932
自繳社保演算法 發布:2024-11-14 10:43:53 瀏覽:554
長安科尚哪個配置有電動滑門 發布:2024-11-14 10:37:10 瀏覽:198
隨機策略演算法 發布:2024-11-14 10:37:10 瀏覽:796