#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){enum Color {red,yellow,blue,white,black};enum Color i,j,k,pri;int n,loop,m;char b[3][7]={0},a[70][22]={0};n=0;for(i=red;i<=black;i++) for(j=red;j<=black;j++) if(i!=j) { for(k=red;k<=black;k++) if((k!=i)&&(k!=j)) {n=n+1; printf("%-4d",n); for(loop=1;loop<=3;loop++) {switch(loop) {case 1:pri=i;break; case 2:pri=j;break; case 3:pri=k;break; default:break; } switch(pri) {case red:{printf("%-10s","red");strcpy(b[loop-1],"Red ");};break; case yellow:{printf("%-10s","yellow");strcpy(b[loop-1],"Yellow ");};break; case blue:{printf("%-10s","blue");strcpy(b[loop-1],"Blue ");};break; case white:{printf("%-10s","white");strcpy(b[loop-1],"White ");};break; case black:{printf("%-10s","black");strcpy(b[loop-1],"Black ");};break; default:break; } }printf("\n"); strcat(a[n-1],b[0]);//将三个b中的函数拼接到a里面 strcat(a[n-1],b[1]); } }printf("\ntotal:%5d\n",n); for(m=0;m<n-1;m++) { for(loop=0;loop<20;loop++) printf("%c",a[m-1][loop]); printf("\n");} return 0; } 原题是C语言程序设计第四版的例9.12 ,我想将结果弄到一个二维字符串里面,在调试的时候发现拼接函数明明没有加上b[2],a里面就已经有了b[2]的内容,如果加一行strcat(a[n-1],b[2]);运行的时候会报错。
é®é¢å¹¶ä¸æ¯åºå¨strcatä¸
èæ¯åºå¨strcpyä¸
æè 说 åºå¨ä½ å®ä¹çbä¸
å®ä¹çbæ¯char b[3][7]={0}
æ¯è¡7个å ç´ ã
è"Yellow " å¤å¶è¿ä¸ªçæ¶å å ä¸ç©ºæ ¼åç»æ符æ¯8个å ç´ ãäºæ¯è¶çäºã
è¿æ ·æ¥ä¸æ¥çstrcatå°±ä¼åºä¸å¯é¢ç¥é误ã
é¤æ¤å¤ï¼æåçæå°ä¹æé®é¢ã è¦ä»må¼å§ã åæ¶æå°å°ç»æ符就å¯ä»¥äºã å ¶å®è¿ä¸ªç¨%s就好ã
æ¹äºä¸ ä½ çç
#include<stdio.h>