初學C語言,程序代碼只是單純的實現功能,並未考慮Bug問題。
--------------------------------------------------------------------------------------------------------------
1. 編寫程序統計輸入的一串字符中大寫字母和小寫字母的個數。
#include<stdio.h>
#include<string.h>
int main()
{
char a[100];
int i,num[2]={0};
gets(a);
for(i=0;a[i]!='\0';i++)
{
if(a[i]>='a'&&a[i]<='z')
num[0]++;
if(a[i]>='A'&&a[i]<='Z')
num[1]++;
}
printf("\n大寫字母有%d個\n小寫字母有%d個",num[0],num[1]);
return 0;
}
2.寫一程序實現將一個字符串的所有數字字符順序前移,其他字符順序後移,輸出處理後的字符串。
例如:字符串:asd123fgh543df
處理後的字符串:123543asdfghdf
#include<stdio.h>
#include<string.h>
int main()
{
char a[100],b[100];
int i,j=0,k=0;
gets(a);
for(i=0;a[i]!='\0';i++)
{
if(a[i]>='0'&&a[i]<='9')
a[j++]=a[i];
else b[k++]=a[i];
}
a[j]=b[k]='\0';
strcat(a,b);
puts(a);
return 0;
}
3.寫一程序將s字符串中下標爲偶數同時ASCII爲奇數的字符刪除,s串中剩餘的字符形成的新串放到t字符數組中。
例如:s:ABCDEFG12345
t:BDF12345
#include<stdio.h>
#include<string.h>
int main()
{
char s[100],t[100];
int i,k=0;
gets(s);
for(i=0;s[i]!='\0';i++)
{
if(i%2==0&&s[i]%2==1)
i++;
t[k++]=s[i];
}
t[k]='\0';
puts(t);
return 0;
}
寫一程序,統計輸入的一行字符串中單詞的個數。規定所有單詞由小寫字母組成,單詞之間有若干個空格隔開,一行的開始沒有空格。
#include<stdio.h>#include<stdlib.h>int main(){ char s[100],t[100]; int i,j,k=0; gets(s); for(i=0;s[i]!='\0';i++) { if(s[0]==' ') { printf("The line 1 can't have the blanket\n"); exit(0); break; } else if(s[i]>='A'&&s[i]<='Z') { printf("can't have the Capital letters!\n"); exit(0); break; } else if(s[i]==' ') j=0; else if(j==0) { j=1; k++; } } printf("\nThere have %d words",k+1); return 0;}5. 寫一程序,將輸入一個英文文本行中的每個單詞的第一個字母改成大寫,然後輸出此文本行(這裏“單詞”是指由空格隔開的字符串)。
例如,若輸入:I am a student to take the examination
則應輸出:I Am A Student To Take The Examination
#include<stdio.h> #include<stdlib.h> int main() { char s[100]; int i; gets(s); for(i=0;s[i]!='\0';i++) { if(s[i]==' ') s[i+1]-=32; } puts(s); return 0; }
6. 寫一程序,輸入若干個字符串(用****作爲線束輸入的標誌),找出最長的一個字符串並輸出。
#include<stdio.h>
#include<string.h>
int main()
{
char s[10][20];
int i,j;
int max;
do
{
i++;
gets(s[i]);
}
while(strcmp(s[i],"****")!=0);
j=i;
max=s[0];
for(i=0;i<j;i++)
{
if(strlen(max)<strlen(s[i]))
max=s[i];
}
printf("max is :%s",max);
return 0;
}
7.寫一程序,刪除輸入字符串的所有空格。
例如,輸入:asd af aa z67
輸出:asdafaaz67
#include<stdio.h>
#include<string.h>
int main()
{
char a[100],b[100];
int i,j=0;
gets(a);
for(i=0;a[i]!='\0';i++)
{
if(a[i]!=' ')
b[j++]=a[i];
}
b[j]='\0';
puts(b);
return 0;
}
8.寫一程序,判斷輸入的字符串是否爲迴文,若是,輸出“YES”,否則輸出“NO”。
迴文是指順讀和反讀都一樣的字符串。
#include<stdio.h>
#include<string.h>
int main()
{
char a[100],b[100];
int i,j=0,n;
gets(a);
n=strlen(a);
for(i=0;i<n/2;i++)
{
if(a[i]!=a[n-i-1])
{
printf("NO");
j=0;
break;
}else j=1;
}
if(j!=0)
printf("YES");
return 0;
}