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();

}