为什么要加这句才能显示454545412312312312313225,否则无显示
int main(int argc, char *argv[]){ char *p; p = Strcat("454545","412312312312313225"); printf("%s",p); return 0;}char *Strcat(char *str1, char *str2){ char *p,len1,len2; unsigned char i; len1 = strlen(str1); len2 = strlen(str2); //printf("%d %d\n",len1,len2); //为什么要加这句才能显示454545412312312312313225,否则无显示 p = (char *)(malloc(len1+len2)+1); while(*str1 != '\0') { p[i++] = *str1++; } while(*str2 != '\0') { p[i++] = *str2++; } p[i] = '\0'; return p; }int main(int argc, char *argv[]){ char *p; p = Strcat("454545","412312312312313225"); printf("%s",p); free(p); return 0;}char *Strcat(char *str1, char *str2){ char *p; size_t len1,len2; int i=0; len1 = strlen(str1); len2 = strlen(str2); //printf("%d %d\n",len1,len2); //为什么要加这句才能显示454545412312312312313225,否则无显示 p = (char *)malloc(len1+len2+1); while(*str1 != '\0') { p[i++] = *str1++; } while(*str2 != '\0') { p[i++] = *str2++; } p[i] = '\0'; return p; }