显示字符串的缩写

问题描述 投票:-1回答:1

我是一个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;
}
c++ c string short
1个回答
2
投票

"我不明白为什么我们要用 *(ptr+i-1) 程序中。如果我只使用 * (ptr+i). 谁能告诉我这是如何工作的?"

for(int i=1; i<len; i++)
{
    if(*(ptr+i-1) == ' ')
    {
        printf(" %c",*(ptr+i));
    }
}

*(ptr+i-1) 重要的是 i 开始时初始化为 10 读取字符串的第一个字符,而不是第二个字符。

有了 *(ptr+i) 你会从字符串的第二个字符读取。


补充说明。

gets(sent); 不要使用-> 不要使用 gets()它是被废弃的。

为什么get函数如此危险,以至于不应该被使用?

© www.soinside.com 2019 - 2024. All rights reserved.