题目如下:
部分代码:
#include <stdio.h>
#include <string.h>
#define M 3
#define N 20
void fun(char a[M][N], char *b)
{
}
main()
{char w[M][N]={"AAAA","BBBBBBB","CC"}, a[100];
int i ;void NONO ();
printf("The string:\n");
for(i=0; i<M; i++)puts(w[i]);
printf("\n");
fun(w,a);
printf("The A string:\n");
printf("%s",a);printf("\n\n");
NONO();
}
void NONO ()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
char w[M][N], a[100] ; int i ;
rf = fopen("in.dat","r");
wf = fopen("out.dat","w");
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%s %s %s", w[0], w[1], w[2]);
fun(w, a);
fprintf(wf, "%s\n", a);
}
fclose(rf); fclose(wf);
}
我写了:
void fun(char a[M][N], char *b)
{
int i,k=0;
for(i=0;i<M;i++){
strcat(b,a[i]);
}
}
但是运行没结果
求大神写一下,并说明下原理,感觉对字符数组和字符串转换有点晕。。
你写的函数基本是没错的,出错的原因应该是传进来的*b没有初始化,导致你直接用strcat的时候内存出错了。
关于字符数组和字符串的关系推荐你去看《c语言解惑》,很短小精悍的一本书。