下面程序想打印“Welcome MSR Asia”,改正错误。
<stdio.h><stdio.h><string.h><string.h>char * GetName (void) { //To return “MSR Asia” String char name[]="MSR Asia"; return name; } void main(int argc, char* argv[]) { char name[32]; //Fill in zeros into name for(int i=0;i<=32;i++) { name[i]='\0'; } //copy “Welcome” to name name="Welcome"; //Append a blank char name[8]=" "; //Append string to name strcat(name,GetName()); //print out printf(name); } </string.h></string.h></stdio.h></stdio.h>
char * GetName (void) { //To return “MSR Asia” String //char name[]="MSR Asia"; (1) char *name=(char *)malloc(strlen("MSR Asia")+1); strcpy(name,"MSR Asia"); return name; } void main(int argc, char* argv[]) { char name[32]; //Fill in zeros into name for(int i=0;i<=32;i++) { name[i]='\0'; } //copy “Welcome” to name //name="Welcome"; (2) strcat(name,"Welcome "); //Append a blank char // name[8]=' '; (3) //Append string to name char *p=GetName(); (4) strcat(name,p); free (p); //print out printf(name); }