我是一个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-1)
程序中。如果我只使用* (ptr+i)
. 谁能告诉我这是如何工作的?"
for(int i=1; i<len; i++)
{
if(*(ptr+i-1) == ' ')
{
printf(" %c",*(ptr+i));
}
}
*(ptr+i-1)
重要的是 i
开始时初始化为 1
不 0
读取字符串的第一个字符,而不是第二个字符。
有了 *(ptr+i)
你会从字符串的第二个字符读取。
补充说明。
gets(sent);
不要使用-> 不要使用 gets()
它是被废弃的。