当前位置:编程学习 > C/C++ >>

C语言 利用大小为n的指针数组指向用gets函数输入的n行,每行不超过80个字符。

试编写一个函数,它将每一行中连续的多个空格字符压缩为一个空格字符。在调用函数中输出压缩空格后的各行,空格不予以输出
追问:for (i = 0; i < n; i++)
        free(buf[i]);
这一行是什么意思啊?
答案:#include <stdio.h>
#include <stdlib.h>

int foo(char* a)
{
    int i = 0, j = 0;

    while (a[i] != '\0')
    {
        a[j++] = a[i++];

        if (a[i] == ' ')
        {
            a[j++] = a[i++];
            while (a[i] == ' ') i++;
        }

    }

    a[j] = 0;
    return 0;
}

int main(void)
{
    int n = 2, i;
    char *buf[n];

    for (i = 0; i < n; i++)
    {
        buf[i] = (char*)malloc(80);
        gets(buf[i]);
    }

    for (i = 0; i < n; i++)
    {
        foo(buf[i]);
        printf("%d, %s\n", i + 1, buf[i]);
    }


    for (i = 0; i < n; i++)
        free(buf[i]);

    return 0;
}

n=2时, 运行结果:
wo    kao
ni     kao
1, wo kao
2, ni kao

上一个:6月份要考计算机二级,我选的是C语言,没学过,我打算自学,请各位告诉我用什么编程软件?
下一个:输入百分制成绩,将其转换为相应的五级制。(运用c语言程序编写)谢谢!

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,