为了账号安全,请及时绑定邮箱和手机立即绑定

判断t所指字符串中的字符是否由连续递增字母序列组成中出现的一个小问题。

判断t所指字符串中的字符是否由连续递增字母序列组成中出现的一个小问题。

C C++
听雨0 2016-05-17 22:13:42
#include   <stdio.h>#include<iostream>#include  <string.h>using namespace std;int  fun(char  *t){ int flag = 1; while (*(t+1))//问题所在,为什么是*(t+1)而不是 *t 呢? {  if ((*(t + 1) - *t) != 1)  {   flag = 0;    cout << *t;  }     t++; } return flag;}int main(){ char  s[26]; printf("请输入一个字母组成的字符串 :  "); gets_s(s); if (fun(s))  printf("%s 是由连续字母组成的字符串.\n", s); else   printf("%s 不是由连续字母组成的字符串!\n", s);}
查看完整描述

1 回答

?
asd8532

TA贡献143条经验 获得超187个赞

int  fun(char  *t)
{
 int flag = 1;
 while (*(t))
 {
 cout<<"HHHHH"<endl;
  if ((*(t + 1) - *t) != 1)
  {
   flag = 0;
   cout<<"wrong"<<endl; 
  }
   //*t
  //第一轮*t b-a有效
  //第二轮*t+1 c-b有效
  //第三轮*t+2 d-c有效
  //第四轮*t+3 e-d无效
  
  //*t+1
  //第一轮*t+1 b-a有效
  //第二轮*t+2 c-b有效
  //第三轮*t+3 d-c有效
  //没有第四轮 最大的差别在于,使用*t会在第四轮的时候*t+3的循环内部使得if ((*(t + 1) - *t) != 1)变成*(t+4)=*(t+3)向后多了一位


查看完整回答
2 反对 回复 2016-05-18
  • 1 回答
  • 0 关注
  • 4338 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信