一、实验目的
1.掌握字符串的输入输出格式以及不同输入输出方法之间的区别。
2. 掌握字符串的复制、连接、比较等常用的字符串处理函数。
3.掌握字符指针的用法。
二、实验学时
三、实验内容
1.定义一个字符数组,分别用 getchar()/putchar()、scanf(“%s”,…)/
printf(“%s”,…)、gets()/puts()语句输入输出,分析三种输入输出方法的
区别。
(1)
#include<stdio.h>
int main(){
char x[10];
int i=0;
do{
x[i]=getchar();
putchar(x[i]);
i++;
}while(x[i]!='\0');
return 0;
}
(2)
#include<stdio.h>
int main(){
char x[10];
printf("输入名字:\n");
scanf("%s",x);
printf("输出名字:\n");
printf("%s",x);
return 0;
}
(3)
#include<stdio.h>
int main(){
char x[10];
printf("输入名字:\n");
gets(x);
printf("输出名字:\n");
puts(x);
return 0;
}
2.输入一个字符串,逆序输出这个字符串(最后的字符最先输出)。
#include<stdio.h>
#include<string.h>
int main(){
char a[10];
int len,i;
gets(a);
len=strlen(a);
for(i=len-1;i>=0;i--)
printf("%c",a[i]);
return 0;
}
3.自编一个字符串的连接函数(和 strcat 功能一样),用指针实现。
#include<stdio.h>
char *strcat(char *a,char *b){
char *p=a;
while(*a!='\0')
a++;
for(;*b!='\0';a++,b++)
*a=*b;
*a='\0';
return p;
}
int main(){
char a[]="May all your ";
char b[]="wishes come ture.";
printf("after being connected:\n%s",strcat(a,b));
return 0;
}
4.自编一个字符串的比较函数(和 strcmp 功能一样),用指针实现。
#include<stdio.h>
int Mystrcmp(char *a,char *b){
while(*a&&*b&&*a==*b){
a++;
b++;
}
return (*a-*b);
}
int main(){
char a[]="Scarcity";
char b[]="Scent";
if(Mystrcmp(a,b)==0)
printf("a=b");
else if(Mystrcmp(a,b)>0)
printf("a>b");
else printf("a<b");
return 0;
}
四、实验小结
在实验报告中记录各题实验代码及运行结果,针对实验中遇到的问题及其解决方法、或尚未解决的问题、实验收获等,仔细撰写实验报告。