10.19 请编写函数mygets和myputs,其功能分别与gets和puts相同,函数中用getchar和putchar读入和输出字符。
#include <stdio.h>
void mygets(char *a)
{
while((*a++=getchar())!='\n');
*a='\0';
}
void myputs(char *a)
{
while(*a)putchar(*a++);
putchar('\n');
}
main()
{ char a[80];
mygets(a);
myputs(a);
}
}
10.20 请编写函数,判断一字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样的字符串。
#include <stdio.h>
#include<string.h>
int ishuiwen(char *a)
{ int i=0,j=strlen(a)-1;
while(i<j&&a[i]==a[j]){i++;j--;};
if(i==j)return 1;
else return 0;
}
main()
{ char a[80];int k;
gets(a);
k=ishuiwen(a);
printf("%d",k);
}
10.21 请编写函数,删除字符串指定位置(下标)上的字符。删除成功函数返回被删字符;否则返回空值。
#include <stdio.h>
#include<string.h>
char delchar(char *a,int x)
{ int i;char ch=a[x];
if(x>=strlen(a)||x<0) return 0;
for(i=x;a[i];i++)a[i]=a[i+1];return ch;
}
main()
{ char a[80],k;int x;
gets(a);
printf("请输入被删除字符的下标:");scanf("%d",&x);
k=delchar(a,x);
if(k==0)printf("删除错误,返回值为%d",k);
else printf("删除正确,删除的字符是%c",k);
printf("\n");
}
|