SCAU高级语言程序设计--实验8 字符数组及串(1)
一、堂上限时习题
1、定义存贮字符串的字符数组
题目:在下面程序中填充定义字符数组的语句,使程序完整。
#include "stdio.h"
#include "string.h"
int main()
{ _______________________/*define a array named s to store string*/
strcpy(s, "abcdefghijklmn");
printf("%s", s);
return 0;
}
#include<stdio.h>
#include<string.h>
int main(){
char s[80];/*define a array named s to store string*/
strcpy(s,"abcdefghijklmn");//把字符串写入数组中。
printf("%s",s);//直接打印字符串
return 0;
}
注意:1)strcpy()函数头文件为string.h。2)可以直接打印字符串%s。3)如果用%c,只能打印一个字符如是s[0]=‘a’。
2、字符串的输入与输出
题目:下面程序实现从键盘读入字符串,然后输出到屏幕,请填充必要的语句。
#include "stdio.h"
main()
{ char s[50];
printf("What's your name?\n");
_______________________ /*iput your name from the keyboard*/
printf("Your name is ");
printf("_______________________", s); /*output your name*/
}
思路:输入与输出字符串的方法。scanf与gets函数可以输入。
#include<stdio.h>
int main(){
char s[50];
printf("What's your name?\n");
scanf("%s",s);//字符串的话,s前面不用加&
//gets(s);//第二种输入字符串的方法
printf("Your name is ");
printf("%s",s);
return 0;
}
注意:scanf中,s前面没有&。
3、回文串
题目:读入一行字符串(不多于80个字符,以回车结束),判断该字符串是否为回文串(即从左向右拼写与从 右向左拼写是一样的),是则输出Y,不是则输出N。
思路: 把整个字符串中间分成一半去判断,前一半和后一半进行对比,如果遇到不相同的就退出输出N。
#include<stdio.h>
#include<stdlib.h>
int main(){
char s[81],i,j;
//循环输入字符
while(i<81){
c[i]=getchar();
if(c[i]=='\n')
break;
i++;
}
//判断算法
j= i/2;
while(j>0){
if(c[j-1] != c[i-j]){//前后两个字符对比
z = 1;//若有不一样就退出
break;
}
j--;//从中间向两边对比
}
//结果输出
if(z==0)
printf("Y\n");
else
printf("N\n");
return 0;
}