请帮忙检查一道c程序题

来源:百度知道 编辑:UC知道 时间:2024/06/22 14:36:25
从键盘键入一个字符串,输出一个新的如下:新的字符串在原字符串每个字符之间输入一个空格。如原串为abcd,则新串为a b c d。要求在函数insert中完成新串的产生并在主函数中完成所有的输入输出。
我的原来编的如下:
#include<iostream>
using namespace std;
void main()
{
char *p,*k,a[30];
char *sr(char *p);
cin>>a;
p=a;
k=sr(p);
cout<<k<<endl;
}
char *sr(char *p)
{
char *h;
for(;*p!='\0';p++)
{
*h=*p;
h++;
*h=' ';
}
cout<<p;
return h;
}

分不多,谢谢了。

#include<iostream>
#include<string>
using namespace std;
void main()
{
char a[30];
char* sr(char *p);
cin>>a;
//p=a;
cout<<sr(a)<<endl;
}
char* sr(char *p)
{
char *h;
char b[30],a[30];int j;
strcpy(b,p);
for(int i=j=0;j<strlen(b);i++,j++)
{
a[i]=b[j];
a[++i]=' ';
}
a[++i]='\0';
h=new char[strlen(a+1)];
strcpy(h,a);
return h;

}
完了,肯定拿不了分了,我是大一的新生,刚开的C++;
楼上cstdlib库都没见过,汗颜啊,哎,不是为了拿分,只是感兴趣,嘿嘿·~~

#include <iostream>
#include <cstdlib>
using namespace std;

char *insert(char *p);
int main (void)
{
char *p,*k,a[30];
cin>>a;
p=a;
k=insert(p);
cout<<k<<endl;
delete k;
return 0;
}
char *insert(char *p)
{
char *tmp,*base = new char[strlen(p)*2*sizeof