C语言 利用大小为n的指针数组指向用gets函数输入的n行,每行不超过80个字符。
试编写一个函数,它将每一行中连续的多个空格字符压缩为一个空格字符。在调用函数中输出压缩空格后的各行,空格不予以输出
追问:for (i = 0; i < n; i++)
free(buf[i]);
这一行是什么意思啊?
试编写一个函数,它将每一行中连续的多个空格字符压缩为一个空格字符。在调用函数中输出压缩空格后的各行,空格不予以输出
追问: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语言程序编写)谢谢!