1.循环输入5个人姓名(二维字符数组),计算最大值
代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//循环输入5个人的姓名,输出最大值
int main(int argc, const char *argv[])
{
char a[5][20]={""};
printf("请输入5个人的姓名\n");
for(int i=0;i<5;i++)
{
printf("第%d个人的姓名:",i+1);
scanf("%s",a[i]);
}
printf("输出数组为:\n");
for(int i=0;i<5;i++)
puts(a[i]);
//每行字符串比大小
char max[20]="";
strcpy(max,a[0]); //将数组a的第1行字符串赋给max
for(int i=1;i<5;i++)
{
if(strcmp(a[i],max)>=0) //比较第2~5行的字符串是否>max
strcpy(max,a[i]); //若后面的字符串更大,则赋给max
}
printf("最大值为:");
puts(max);
return 0;
}
运行结果:
2.在主函数中定义字符串数组并初始化,自定义有参有返函数,计算字符串长度并返回
代码:
//在主函数中定义字符串数组并初始化
//自定义有参有返函数,计算字符串长度,并返回
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int Len(char a[]);
int main(int argc, const char *argv[])
{
char a[20]="";
printf("请输入字符串:");
gets(a);
int l=Len(a);
printf("输入的字符串长度为:%d\n",l);
return 0;
}
int Len(char a[])
{
int i=0;
for(i=0;a[i]!=0;i++);
return(i);
}
运行结果:
3.主函数中定义两个字符串并初始化,定义有参无返函数,实现字符串连接
代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//在主函数中定义两个字符串并初始化
//定义有参无返函数,实现字符串连接
void Cat(char a[],char b[]);
int main(int argc, const char *argv[])
{
char a[30]="";
char b[30]="";
printf("请输入字符串a:");
gets(a);
printf("请输入字符串b:");
gets(b);
Cat(a,b); //调用函数
return 0;
}
void Cat(char a[],char b[])
{
int i;
for(i=0;a[i]!='\0';i++); //计算数组a的长度
int j;
for(j=0;b[j]!='\0';j++)
{
a[i]=b[j];
i++;
}
printf("连接后的字符串为:");
puts(a);
}
运行结果:
4.在主函数中定义两个字符串并初始化,定义有参有返函数,实现字符串比较,返回两个字符串ASCII值的差
代码:
//在主函数中定义两个字符串并初始化
//定义有参有返函数,实现字符串比较,返回两个字符串ASCII值的差
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int Compare(char a[],char b[]);
int main(int argc, const char *argv[])
{
char a[30]="";
char b[30]="";
printf("请输入第一组字符串a:");
gets(a);
printf("请输入第二组字符串b:");
gets(b);
int i=Compare(a,b);
if(i>0)
printf("字符串a>b,差值=%d\n",i);
if(i<0)
printf("字符串a<b,差值=%d\n",i);
if(i==0)
printf("字符串a=b,差值=%d\n",i);
return 0;
}
int Compare(char a[],char b[])
{
int i=0;
while(a[i]==b[i])
{
if(a[i]=='\0')
break;
i++;
}
int num=a[i]-b[i];
return num;
}
运行结果: