#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 关注
- 4471 浏览
添加回答
举报
0/150
提交
取消
