#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int fun( char *t )
{ int n,j,k,i=0;
char *p=t;
n=strlen(p);
for(j=0;j<n;j++)
{
if((*p+j)==*(p+j))
k=1;
else
k=0;
}
return k;
}
int main()
{ int n;
char s[30];
gets(s);
n=fun(s);
switch (n)
{
case 0:
printf("字符串不是连续的\n");break;
case 1:
printf("字符串是连续的\n");break;
}
system("pause");
return 0;
}
注意:这里重点是比较 *(p+j)与*p+j的值,例如输入的是字符串ABC,当j=2时 *(p+j)=*p+j;但是当j=3时,*(p+j)=0,而*p+j=D(数值)
在fun(){}函数中,还可以写成如下代码:
int fun( char *t )
{
char *p=t;
while(*(p+1))
{
if((*p+1)!=*(p+1))
break;
p++;
}
if(*(p+1)=='\0')
return 1;
else
return 0;
}
注意:利用指针进行字符串的遍历,将 *(p+1)与 *p+1,字符串逐次比较,当*(p+1),比较完以后值为0(因为任何字符串最后一位总是为0的),说明字符串是连续的,如果 在p++指针推移期间,字符串不等,那么break就直接退出。