#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)向后多了一位
- 1 回答
- 0 关注
- 4338 浏览
添加回答
举报
0/150
提交
取消