利用大小为n的指针函数指向用gets函数输入的n行,编一个函数,将每一行中连续多个空格字符压缩为一个输出,
每行不超过80个字符,空行不输出、注意,空行不输出!!!急!
修改这个程序,使之不输出空行(这个程序会输出空行,弄了半天不知怎么搞),好心人帮忙 啊
#include <stdio.h>
#include <string.h>
#include<iostream>
using namespace std;
const int n = 5;
int main()
{
int i;
char *p[n], str[n][80];
void fun(char *p[]);
for(i = 0; i < n; i++)
{
gets(str[i]);
p[i] = str[i];
}
fun(p);
}
void fun(char *p[])
{
int i, j, k, l;
char str[80],s[80];
for(i = 0; i < n; i++)
{
l = 0;
for(k = 0; k < 80; k++) {str[k] = '\0'; s[k]='\0';}
for(j = 0; *(p[i]+j); j++)
{
str[j] = *(p[i]+j);
if(str[j] == 32 && str[j-1] == 32) goto flag;
s[l] = str[j];
cout << s[l];
l += 1;
flag: ;
}
cout << endl;
}
}
#include <stdio.h>
#include <string.h>扰此缓缓模
#include<iostream>
using namespace std;
const int n = 5;
int main()
{
int i;
char *p[n], str[n][90];
void fun(char *p[]);
for(i = 0; i < n; i++)
{
gets(str[i]);
p[i] = str[i];
}
fun(p);
getchar();
getchar();
}
void fun(char *p[])
{
int i, j, k, l;
char str[80],s[80];
for(i = 0; i < n; i++)
{
if(p[i][0]=='\0') continue; //扒或这里,跳过空行。
l = 0;
for(k = 0; k < 80; k++) {str[k] = '\0'; s[k]='\0';}
for(j = 0; *(p[i]+j); j++)
{
str[j] = *(p[i]+j);
if(str[j] == 32 && str[j-1] == 32) goto flag;
s[l] = str[j];
cout << s[l];
l += 1;
flag: ;
}
cout << endl;
}
}