在主函数中输入一个字符串str1,调用函数。

在主函数中输入一个字符串str1,调用函数chage(str1,N);将str1 中的小标为奇数的字符取出构成一个新的字符串放入字符串str2中。然后在主函数中输出字符串str2.运用到数组的引用。

#include
#define N 10
using namespace std;
void chage(char str2[],int n);
int main()
{

char str1[N];
for(int i=0;i cin>>str1[i];
chage(str1,N);
for(int i=0;i<N/2;i++)
cout<<str1[i];
return 0;
}

void chage(char str2[],int n)
{
int c=0;
for(int j=0;j<n;j++)
{
if(j%2!=0)
{
str2[c++]=str2[j];

}
}
}
我的哪里错了?求注释和解答啊。如果有更好的程序麻烦写一下谢谢

 #include <stdio.h>
#include <string.h>
void transferstr(char * src, char * result)
{
unsigned int i;
for (i = 1; i < strlen(src); i += 2)
{
(*result++) = src[i];
}
*result = '\0';
}
int main()
{
char s[] = "1234567890abc";
char result[100];
transferstr(s, result);
printf("%s", result);
}

http://codepad.org/j5Y4uoli

24680b
在线编译运行结果

void change(char*&dst,const char* & src,int len)
{
for(int i = 0;i {
*(dst+i) = *(src+2*i+1);
}
}
int main()
{
int N = 10;
char *src = new char[N]();//不能用char src[N];来申请一个动态空间
for(int i = 0;i {
cin>>*(src+i);
}
char *dst = new charN/2;
change(dst,src,N);//注意这里的长度不能使用sizeof(src),指针长度和空间大小是两个概念

for(int i = 0;i<N/2;i++)
    cout<<*(dst+i);

return 0;

}

void change(char*&dst,const char* & src,int len)
{
for(int i = 0;i {
(dst+i) = *(src+2*i+1);
}
}
int main()
{
int N = 10;
char *src = new charN;//不能用char src[N];来申请一个动态空间
for(int i = 0;i {
cin>>
(src+i);
}
char *dst = new char(N/2);
change(dst,src,N);//注意这里的长度不能使用sizeof(src),指针长度和空间大小是两个概念

for(int i = 0;i<N/2;i++)
cout<<*(dst+i);

return 0;
}


不会添加代码、汗、、、


#include<iostream>
#define N 10 
using namespace std; 
void  chage(char str2[],int n);
int main() 
{   
    char str1[N] = {0};
    cin>>str1; //输入数组
    chage(str1,N); //调用函数
    cout<<str1; //输出数组
    return 0; 
}   
void chage(char str2[],int n)
{ 
    int c=0;
    char str1[N] = {0}; //声明一个新字符串
    for(int j=0;j<n;j++)//循环
    { 
        if(j%2!=0) //判断是否是奇数个字符
        {
            str1[c++]=str2[j];  //将字符拷贝到新字符串
        } 
    } 
    strcpy(str2, str1);//用新的字符串替换旧字符串
}