/*
1、用戶任意輸入一個字符串,把該字符串的大寫字母變小寫,小寫變大寫。
*/
#include <stdio.h>
void main()
{
int a=100,i;
char num [a];
//獲取用戶輸入的字符串
printf("請任意輸入一個字符串:");
scanf("%s",num);
//循環取出用戶輸入的字符串的每一個元素判斷是小寫還是大寫,然後進行+-32的操作;
for(i=0;i<a;i++)
{
if(num[i]<='Z'&&num[i]>='A')
{
num[i]=num[i]+'a'-'A';
}
else if(num[i]>='a'&&num[i]<='z')
{
num[i]=num[i]-'a'+'A';
}
}
//打印用戶輸入的字符串
printf("%s\n",num);
}
/*
2、查找“asdfjvjadsffvaadfkfasaffdsasdffadsafafsafdadsfaafd”,
打印出該字符串中有多少個"af"。
*/
#include <stdio.h>
#include <string.h>
void main()
{
int a=100,i,k=0;
char syst[100]="asdfjvjadsffvaadfkfasaffdsasdffadsafafsafdadsfaafd";
printf("該字符串本身:%s\n",syst);
for(i=0;i<a;i++)
{
if(syst[i]=='a'&&syst[i+1]=='f')
{
k+=1;
}
}
printf("該字符串中有 %-4d個'af'\n",k);
}
/*
3、輸入任意一個字符串,如:“abDEe23dJfd343dPOddfe4CdD5ccv!23rr”。
取出該字符串中所有的字母組成一個新的字符串。
*/
#include <stdio.h>
void main()
{
int i,a=100,k=0;
char sys[100],syst[100]="abDEe23dJfd343dPOddfe4CdD5ccv!23rr";
printf("該字符串本身:%s\n",syst);
for(i=0;i<a;i++)
{
//利用循環判斷該字符串中的每一個元素是否滿足a-z||A-Z的條件,當滿足時就賦給sys[]的元素;
if((syst[i]>='A'&&syst[i]<='Z') || (syst[i]>='a'&&syst[i]<='z'))
{
sys[k]=syst[i];
k+=1;//當syst數組中的元素條件滿足時賦給sys數組的元素的下標就自增長;不會收到syst[i]的影響;
}
}
printf("取出該字符串中所有的字母組成一個新的字符串:%s\n",sys);
}
/*
4、自己實現strcat函數的功能。(假如字符數組足夠大)
*/
#include <stdio.h>
#include <string.h>
void main()
{
char sys1[100]="鋤禾日當午,",sys2[100]="汗滴禾下土,";
printf("沒有用strcat函數之前的數組1裏面的數據:%s\n",sys1);
printf("沒有用strcat函數之前的數組2裏面的數據:%s\n",sys2);
//strcat函數 字符串鏈接
strcat(sys1,sys2);
printf("騷年,您看得出有什麼變化嗎?\n");
printf("用strcat函數字符串鏈接的數組1裏面現在的數據:%s\n",sys1);
printf("用strcat函數字符串鏈接的數組2裏面現在的數據:%s\n",sys2);
}
/*
5、完成一個登陸頁面。(用戶名:F11;密碼:123456)。要求用戶輸入用戶
名和密碼,驗證是否等於正確值。如果等於告知登陸成功,程序結束;否則告
知用戶名密碼有誤。用戶三次輸入不正確,告知登陸失敗,程序結束 。
*/
#include <stdio.h>
#include <string.h>
void main()
{
int i;
char userName[10],passWord[10];
for(i=0;i<3;i++)
{
printf("請輸入用戶名:");
scanf("%s",userName);
printf("請輸入密碼:");
scanf("%s",passWord);
if((strcmp(userName,"F11")==0) && (strcmp(passWord,"123456")==0))
{
printf("登陸成功\n");
break;
}
else if(i<2)
{
printf("抱歉,用戶名和密碼輸入錯誤,請重新輸入\n");
}
else{
printf("登錄失敗...\n");
}
}
}
/*
6、實現strcmp函數的功能,要求按照先比字符後比長度的方式。
這題目沒看明白,個人理解是先比具體的值,再比長度吧;
*/
#include <stdio.h>
#include <string.h>
void main()
{
int i;
char number[100];
printf("strcmp練習,請隨意輸入一個字符串:");
scanf("%s",number);
if(strcmp(number,"HTX")==0)
{
if(strlen(number)==3)
{
printf("您能看到 HTX 只能說明您輸入的字符的值還有長度和系統初始值完全吻合\n");
}
}
else
{
printf("什麼玩意...\n");
}
}
/*
7、輸入5個學生的名字(英文),使用冒泡排序按從大到小排序。
提示:涉及到字符串數組,一個字符串是一個一維字符數組;一個
字符串數組就是一個二維字符數組。
*/
#include <stdio.h>
#include <string.h>
void main()
{
//聲明循環變量和數組元素個數的變量;
int i,j,k,a=5,b=10;
//聲明一個二維數組和一個一維數組;
char name[a][b],min[b];
//獲取用戶輸入的五個學生的名字(注意;請輸入英文)
for(i=0;i<a;i++)
{
printf("請輸入第 %-4d個學生的名字(注意:請輸入英文):",i+1);
scanf("%s",name[i]);
}
//排序
for(j=0;j<a;j++)
{
for(i=0;i<a-1;i++)
{
if(strcmp(name[i],name[i+1])<0)
{
strcpy(min,name[i]);
strcpy(name[i],name[i+1]);
strcpy(name[i+1],min);
}
}
}
printf("\n");
printf("根據您輸入的英文姓名從大到小的排序順序爲:\n");
//循環輸出
for(i=0;i<a;i++)
{
printf("%s\n",name[i]);
}
}