/*
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]);
}
}