10.19 请编写函数 mygets 和 myputs ,其功能分别与 gets 和 puts 相同,函数中用 getchar
和 putchar 读入和输出字符。
※程序如下※
#include<stdio.h>
void mygets(char *p)
{
char ch;
while((ch=getchar())!='\n')
*(p++)=ch;
p[0]=0;
}
void myputs(char *p)
{
char ch;
while(*p!='\0')
putchar(*(p++));
}
main()
{
char *s;
clrscr();
mygets(s);
myputs(s);
}
——————————————————————————————————————
10.20 请编写函数,判断一字符串是否是回文。若是回文函数返回值为 1 ;否则返回值
为 0 。回文是顺读和倒读都一样的字符串。
※程序如下※
#include<stdio.h>
main()
{
char a[200],*p;
int i,j,flag=1;
clrscr();
scanf("%s",a);
p=a;
j=strlen(a);
for(i=0;i<=j/2;i++,j--)
if(*(p+i)!=*(p+j-1))
{
flag=0;
break;
}
if(flag)
printf("Yes");
else
printf("No");
}
——————————————————————————————————————
10.21 请编写函数,删除字符串中指定位置上的字符。删除成功函数返回被删字符;否
则返回空值。
※程序如下※
#include<stdio.h>
#include<alloc.h>
del (char *p,int n)
{
int i;
char ch;
if(n<=strlen(p))
ch=*(p+n-1);
else
ch='0';
for(i=n-1;i<strlen(p);i++)
*(p+i)=*(p+i+1);
return ch;
}
main()
{
int n;
char *s;
clrscr();
printf("****The string is ****\n");
gets(s);
printf("Enter n(0--%d)\n",strlen(s));
scanf("%d",&n);
printf("****The deleted char is****\n");
printf("%c", del (s,n));
getch();
}