将字符串的第0,2,4,6....位置的字符复制到另一字符串并输出

这是程序设计题
#include <conio.h>
#include <stdio.h>
void nono(char str1[]);
void fun(char str1[],char str2[])
{
int i, j;
/***********begin***********/
str2[50]="dfdsfsadsa";
/************end************/
}
main()
{ char str1[80]="This Is a c Program",str2[80];
printf("String is: %s\n",str1);
fun(str1,str2);
printf("Result is: %s\n",str2);
nono(str2);
}
void nono(char str1[])
{FILE *f;
f=fopen("out1.dat","w");
fprintf(f,"%s\n",str1);
fclose(f);
}

str2[50]="dfdsfsadsa";应该是你自己写的吧。
for(i=0,j=0;str1[j]!='0';i++)
{
str2[i]=str1[j];
j+=2;
}
str[i]='\0';追问

怎么没用到j,能不能把你调试的程序发来看看,我的按这样敲不出东西啊。

追答

str1[j]!='0'是j啊,str2[i]=str1[j];后一个是j啊。
然后修改一下,我手打的时候失误了:
for(i=0,j=0;str1[j]!='\0';i++) //之前少打了个"\"
{
str2[i]=str1[j];
j+=2;
}
str2[i]='\0'; //之前少打了个“2”

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-15
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char **argv)
{
char str1[1024] = "this is a c program";
char str2[1024] = {0};
int i = 0, j = 0;
for(i = 0; i < strlen(str1); i++)
{
str2[i] = str1[j];
j += 2;
}
str2[i] = '\0';
printf("str2 is %s\n", str2);
return 0;
}本回答被网友采纳
相似回答