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

2025-03-19 10:24:40
推荐回答(1个)
回答1:

#include
#include

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