若一个字符串正读和反读都一样,如 level 、 madam,则称之为回文字符串。请编写程
序,输入任意一个字符串,验证其是否为回文。
#include<stdio.h>
#include<string.h>
int main() {
char s[100];int i,n,m=1;
scanf("%s",s);
n=strlen(s);
for(i=0;i<n/2;i++)
if(s[i]!=s[n-1-i]){
m=0;break;
}
if(m) printf("%s 是回文 \n",s);
else printf("%s 不是回文 \n",s);
return 0;
}
解法2
#include<stdio.h>
#include <string.h>
#define N 100
void fc(char a[ ]){
int i, tmp, n;
n=strlen( a );
for(i=0;i<n;i++){
tmp=a[i];
a[i]=a[n-i-1];
a[n-i-1]=tmp;
}
}
int main()
{
char a[N],b[N];
gets(a);
strcpy(b,a);
fc (a) ;
if(strcmp(a,b)== 0) printf("%s 是回文串 \n",a);
else printf("%s 不是回文串 \n",a);
return 0;
}
#include <stdio.h>
#include <string.h>
const int maxn = 256;
bool judge(char str[]){
int len = strlen(str);
for(int i=0; i<len/2; i++){//枚举字符串的前一半
if(str[i] != str[len-1-i]){//如果对称位置不同
return false;
}
}
return true;
}
int main(){
char str[maxn]; //输入字符串
while(gets(str)) {
bool flag = judge(str);//判断字符串str是否是“回文串”
if (flag == true){
printf("YES\n");
} else{
printf("NO\n");
}
}
return 0;
}
//拷贝字符串,将内存source上的值存到另一个内存上
char *mystrcpy(char *dest,const char *source)
{
if (dest == NULL || source == NULL)
return NULL;
char *p = dest;
while (*source != '\0')//与下面两行可以合写成while((*dest++=*source++)!='\0');
*dest++ = *source++;
*dest= '\0';
return p;
}
//拼接字符串,把p2拼到p1后面
char *mystrcat(char *p1,const char *p2)
{
if (p1 == NULL || p2 == NULL)
return NULL;
char *q = p1;
while (*p1 != '\0')
p1++;
while ((*p1++ = *p2++) != '\0');
return q;
请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
#include<stdio.h>
int main() {
char i,j;
printf("请输入第一个字母:\n");
scanf("%c",&i);
getchar();//scanf("%c",&j);的问题,第二次是读入的一个换行符,而不是输入的字符,因此需要加一个getchar() 吃掉换行符
switch(i) {
case 'm':
printf("monday\n");
break;
case 'w':
printf("wednesday\n");
break;
case 'f':
printf("friday\n");
break;
case 't':
printf("请输入下一个字母\n");
scanf("%c",&j);
if (j=='u') {printf("tuesday\n");break;}
if (j=='h') {printf("thursday\n");break;}
case 's':
printf("请输入下一个字母\n");
scanf("%c",&j);
if (j=='a') {printf("saturday\n");break;}
if (j=='u') {printf("sunday\n"); break;}
default :
printf("error\n"); break;
}
return 0;
}