【发布时间】:2020-05-08 16:50:49
【问题描述】:
我是 C 编程的初学者。我最近尝试解决一个简单的问题来查找字符串的短形式。我不明白为什么我们在程序中使用*(ptr+i-1)。如果我只使用* (ptr+i) 会怎样。谁能告诉我这是如何工作的?
#include<stdio.h>
#include<string.h>
int main()
{
char sent[100];
char *ptr;
printf("Enter a sentence : ");
gets(sent);
char len=strlen(sent);
printf("%c",*sent);
ptr=&sent;
for(int i=1; i<len; i++)
{
if(*(ptr+i-1) == ' ')
{
printf(" %c",*(ptr+i));
}
}
return 0;
}
【问题讨论】:
-
您正在寻找索引前一个字符的空格字符。标记一个新单词的开始。
-
".. 如果我只使用
* (ptr+i).." - 这真是太好了,你可以继续尝试。 -
从here复制的整个同上代码。
-
*(ptr+i-1)的特点是初学者如何编写经验丰富的 C 程序员所写的ptr[i-1]。同样*(ptr+i)只是ptr[i]。