189 8069 5689

逆序输出一句话(C语言指针初步)-创新互联

题目:逆序输出一句话,每个单词用空格隔开
//input
i like beijing.


//output


beijing. like i

思路,指针,判断空格来分开单词,倒着遍历字符串。

目前创新互联公司已为上1000+的企业提供了网站建设、域名、虚拟空间、网站托管维护、企业网站设计、范县网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。话不多说,直接上代码
​
#include#include#define SIZE 64
print(char* s)
{
    int i = 0;
    char* p = s;
    while (*p++ != '\0')
        ;
  
    while (1)
    {
        
        while(*p!= ' '&& p!=s)
        {
            p--;
        }
        if (p != s)
        {
            p++;
            printf("%s ", p);
            p--;
            *p = '\0';
        }
        if (p == s)
        {
            printf("%s", p);
            break;
        }
    }
       
}
int main()
{
    int n = 0;
    char str[SIZE] = { 0 };
    gets(str);
    print(str);
    return 0;
}

​

可以认真去想一下我的指针究竟指向了谁,思考一下逻辑

优化
#include#include#define SIZE 64
print(char* s)
{
    int i = 0;
    char* p = s;
    while (*p++ != '\0')
        ;
  
    while (1)
    {
        
        while(*p!= ' '&& p!=s)
        {
            p--;
        }
        if (p != s)
        {
            p++;
            printf("%s ", p);
            while (*(--p) == ' ')//多个空格,
                ;
            p++;
            *p = '\0';
        }
        if (p == s)
        {
            printf("%s", p);
            break;
        }
    }
       
}
int main()
{
    int n = 0;
    char str[SIZE] = { 0 };
    gets(str);
    print(str);
    return 0;
}

话中有多个空格。

当然,还可以优化,比如字符串开头是空格,字符串结尾是空格。

在这里不做赘述。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文标题:逆序输出一句话(C语言指针初步)-创新互联
文章来源:http://jkwzsj.com/article/csdjjg.html

其他资讯