C中如何判断字符串是否连续

#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就直接退出。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值