① 用c語言怎麼把一個字元串按字母表順序排序
用ASSIC碼 本質上還是數值進行排序
自然就可以使用數值類型的排序演算法進行排序了
排序演算法有很多標準的模板 隨便一本演算法書都可以找的到
要注意的是 你用的排序演算法 參數應該是 char型 而不是其他類型 趕快去實踐吧
② 如何用C語言給字母排序
這個其實就是排序,因為char類型跟int類型一樣的也是數字,可以比較大小的,然後輸出就可以了。
③ C語言對字元串中的字元按照字母順序和數字順序重新排列
#include<algorithm>
#include<string.h>
#include<stdio.h>
#include<string>
int main(){
char s[100],C[100],c[100],n[100],rC=0,rc=0,rn=0;
scanf("%s",s);
int lenth=strlen(s);
std::sort(s,s+lenth);
for(int i=0;i<lenth;++i){
if(s[i]>='0' and s[i]<='9')
n[rn++]=s[i];
else if(s[i]>='a' and s[i]<='z')
c[rc++]=s[i];
else if(s[i]>='A' and s[i]<='Z')
C[rC++]=s[i];
}
n[rn++]='\0';
c[rc++]='\0';
C[rC++]='\0';
printf("%s%s%s",C,c,n);
}
④ C語言 字母排列
1、該排序演算法是選擇排序演算法
2、在i位置為大寫字母時進行第二層遍歷
3、如果判斷不為大寫字母,不需要j++之後continue,否則會跳過一個字母
修改後代碼如下,修改位置注釋給出:
//1072字母排列
#include<stdio.h>
#include<string.h>
intmain()
{
chara[65];
inti,j,b,min;
gets(a);//讀取一行內容
b=strlen(a);
//冒泡排序法,i為前面的字元,j為後一個字元
for(i=0;i<b-1;i++)
{
if(a[i]<'A'||(a[i]>'Z')||a[i]=='')continue;/////judge
for(j=i+1;j<b;j++)
{
if(a[j]<'A'||(a[j]>'Z')||a[j]=='')
{
//j++;//delete
continue;
}
if(a[i]>a[j])//從小到大排序,小的排左邊,大的排右邊
{
min=a[j];
a[j]=a[i];
a[i]=min;
}
}
}
for(i=0;i<b;i++)
printf("%c",a[i]);
return0;
}
⑤ C語言對一個字元串中字母的排序問題
#include<stdio.h>
#include<string.h>
intmain()
{
charstr[256],ch;
inti,j;
scanf("%s",str);
for(i=0;i<strlen(str);++i){
for(j=i+1;j<strlen(str);++j){
if(str[i]>str[j]){
ch=str[i],str[i]=str[j],str[j]=c;
}
}
}
printf("%s ",str);
return0;
}
⑥ C語言如何設計一個對輸入的字母進行排序的C語言程序
字母是ASCII表示的,你可以直接比大小A~Z對應65~90,a~z是對應97~122,寫程序時你先判斷是大小還是小寫,再統一轉換為大小或小寫,然後直接比較就行了
⑦ C語言中輸入一串字元,怎樣讓它按照字母從小到大的順序排列
這可以把字元串輸入到字元數組中,然後採用排序的方法來實現:
(需要包含<string.h>頭文件)
char t,s[200];
int i,i;
gets(s);
for(i=0;i<strlen(s)-1;i++)
for(j=0;j<strlen(s)-1-i;j++)
if(s[j]>s[j+1])
{t=s[j]; s[j]=s[j+1]; s[j+1]=t;}
puts(s);
⑧ C語言:將輸入的字元串按首字母順序排列。
#include<stdio.h>
#include<string.h>
void sort(char *a[]);
void print(char *a[]);
int main()
{
char *a[] ={"ceo","define","basic","abc","empty"};
printf("原來的序列是: ");
print(a);
sort(a);
printf(" 排序後的序列是: ");
print(a);
printf(" ");
return 0;
}
void sort(char *a[])
{
int i,j;
char *temp;
for(i=0;i<4;i++)//注意是i<4
{
for(j=0;j<4;j++)//注意是j<4,因為下面要+1和後面的那個字元串比較
{
if(strcmp(a[j],a[j+1])>0)//字元串比較:>0表示前面的字元串比後面的大則交換
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
void print(char *a[])
{
int i;
for(i=0;i<5;i++)
{
printf("%s ",a[i]);
}
}
運行效果:
(8)c語言按字母的順序進行排序擴展閱讀:
return 0的用法:
return的作用是結束正在運行的函數,並返回函數值。return後面可以跟一個常量,變數,或是表達式。
函數的定義一般是這樣的,例如:
inta(inti)//第一個int是函數的返回值的類型,也就是return後面跟的值的類型,a是函數的名稱,括弧里的是傳遞給函數的參數,int是參數的類型,i是參數的名字
{
...//省略函數體內容
returnb;//b必須與函數頭的返回值一致(此處為int型)
}
簡單函數舉例:
intaddOne(intb)
{
returnb+1;
}
該函數的作用是取得一個數,將這個數加上1,再將結果返回
調用時這樣:
intresult=addOne(2);//此時result的值為3
函數括弧里的參數也可以為變數或能算出值的表達式
以上就是一個基本的函數,一般的函數都有返回值,也就是return後面跟的值,返回值可以為各種數據類型,如:int,float,double,char,a[](數組),*a(指針),結構或類(c++)
但不是所有函數都有返回值,如果某個函數無返回值,那麼返回值的位置則為「void」關鍵字,此時函數體中無返回值,即無return的值。但是函數中也可出現return,即一個空的return句子,其作用是使函數立即結束,如voidprint()//括弧中為空表示無傳遞參數、
{
printf("a");
printf("b");
return;//函數執行到此處結束
printf("c");
}//該函數只執行到return語句處,即屏幕上輸出的為"ab"
⑨ 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<stdio.h>
#include<string.h>/*string包含gets,puts,strlen函數*/
void main()
{
char n[500];/*定義具有五百個字元的數組n,可以根據字元串的長度適當調整*/
int i,j,x,temp;
printf("輸入n個字元串:");/*屏幕輸出"輸入n個字元串:"*/
gets(n);/*鍵盤敲入數組n*/
x=strlen(n);/*將n數組的字元長度賦給x*/
for(i=0;i<=x-1-1;i++)/*冒泡法排序:進行數組的ascii碼排序,共需進行x-1-1組排序,
0到x-1為數組n的長度x,故只需進行x-1-1組排序*/
for(j=0;j<x-1-i;j++)/*第j組排序要排序為j<x-1-i次*/
{
if(n[j]>n[j+1])/*如果這個數比下面一個數大,則這兩個數互換*/
{
temp=n[j];
n[j]=n[j+1];
n[j+1]=temp;
}
}
puts(n);/*輸出排序後的字元數組n*/
}
解釋夠詳細了吧,我在vc++6.0運行了下,可以。由於我也是學c語言不久,所以可以共同學習嘛。。。。呵呵。。。