|
发表于 2020-10-4 11:43:06
|
显示全部楼层
本楼为最佳答案
str5和str6复制过来后都没有加'\0',后面会输出乱码
- char str1[] = "ABCDEFGHIJKLMN";
- char str2[40];char str3[40];
- char str4[40];char str5[40];
- char str6[40];
- strncpy(str2, str1, sizeof(str2));
- printf("strlen str2 = %u\n",strlen(str2));
- strncpy(str3, str2, 5); str3[5] = '\0';
- strncpy(str4, str2, 6);
- printf("strlen str4 = %u\n", strlen(str4));
- strncpy(str5, str2, 7); str5[7] = '\0'; //加'\0'
- strncpy(str6, str2, 4); str6[4] = '\0'; // 加'\0'
- printf("strlen str6 = %u\n", strlen(str6));
- printf("str1 = %s\n", str1);
- printf("str2 = %s\n", str2);
- printf("str3 = %s\n", str3);
- printf("str4 = %s\n", str4);
- printf("str5 = %s\n", str5);
- printf("str6 = %s\n", str6);
复制代码 |
|