判断字符串是否连续

要求

请编写函数fun,其功能是:判断t所指字符串中的字母是否由连续递增字母序列组成(字符串长度大于等于2)。
例如:字符串: uvwxyz满足要求;
而字符串: uvxwyz不满足要求。
 

代码

包含两种方法

#include   <stdio.h>
#include  <string.h>
void NONO();
int  fun( char  *t )
{
	int i = 0;
	int k = 0 ;
	for(i=0;i<strlen(t);i++)//方法一
	/*	while(t[i+1])*/
	{
		/*if(t[i+1]==t[i]+1)
		{
			k++;
			i++;
		}*/

		//if(*(t+i)==*t+i)//方法二
			if(*(t+1)==*t+1)
		{
			k=1;
		}
		else
		{
			k=0;
			break;
		}	
	}
	return k ;
}

main()
{  char  s[26];
   printf("请输入一个字母组成的字符串 :  "); gets(s);
   if( fun(s) )  printf("%s 是由连续字母组成的字符串.\n", s );
   else   printf("%s 不是由连续字母组成的字符串!\n", s );
   NONO();
   getchar();
}

void NONO()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
  FILE *fp, *wf ;
  int i;
  char s[26], *p;

  fp = fopen("in.dat","r") ;
  wf = fopen("out.dat","w") ;
  for(i = 0 ; i < 10 ; i++) {
    fgets(s, 26, fp);
	p=strchr(s,'\n');
	if(p) *p=0;
    if (fun(s)) fprintf(wf, "%s\n", s+2);
	else  fprintf(wf, "%s\n", strrev(s));
  }
  fclose(fp) ;
  fclose(wf) ;
}

结果截图

判断字符串是否包含连续计算符号,可以使用正则表达式来实现。 首先,我们可以使用正则表达式的预定义字符类`\d`来匹配任意一个数字字符,`\+`匹配加号,`\-`匹配减号,`\*`匹配乘号,`\/`匹配除号。然后,我们可以使用正则表达式的量词`+`表示匹配前面的元素一次或多次。所以,`\d+`表示匹配一个或多个数字字符。 接下来,我们可以使用`[]`来表示可选字符集,`[\+\-\*\/]`表示匹配加号、减号、乘号或除号中的任意一个。 最后,我们可以使用`{2,}`来表示匹配前面的元素至少两次。所以,`[\+\-\*\/]{2,}`表示匹配至少两个连续的加号、减号、乘号或除号。 综上所述,我们可以使用正则表达式`/[\+\-\*\/]{2,}/`来判断字符串是否包含连续计算符号。 代码实现如下: ```javascript function hasConsecutiveOperators(str) { var pattern = /[\+\-\*\/]{2,}/; return pattern.test(str); } console.log(hasConsecutiveOperators("4*5-6+7")); // true console.log(hasConsecutiveOperators("8/2+3")); // false console.log(hasConsecutiveOperators("2-3*")); // true ``` 以上代码中的函数`hasConsecutiveOperators`接受一个字符串作为参数,然后使用正则表达式模式匹配来判断字符串是否包含连续计算符号。在示例中,第一个测试用例返回`true`,因为字符串中包含了连续的乘号和减号;第二个测试用例返回`false`,因为字符串中没有连续的计算符号;第三个测试用例返回`true`,因为字符串中包含了一个连续的减号和乘号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值