求解,求帮忙我被难住了
[local]1[/local]程序代码:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #define MAX_JU 100 #define MAX_ZF 50 int main(void) { char buffer[MAX_ZF]; char *ps[MAX_JU] = {NULL}; size_t str_len = 0; //储存字符串的长度变量 size_t i = 0; //记录当前句子的位置 int number[MAX_JU]; //储存每个字符串长度值的数组 size_t jushu = 0; //储存用户共输入的句数 printf("请输入句子,输入“quxt”结束!\n"); while((strcmp(fgets(buffer,MAX_ZF,stdin),"quxt\n") != 0) && (i<MAX_JU)) { str_len = strlen(buffer); buffer[--str_len] = '\0'; //将’\n‘用‘\0’代替 ps[i]=(char *)malloc(strlen(buffer)+1); if(ps[i] == NULL) { printf("内存不足!"); return 1; } strcpy(ps[i],buffer); number[i] = strlen(ps[i++]); } jushu = i; for(int y=0 ; y<jushu ; y++) printf("你的 %d 号句子是 %s 长度为%d!\n",y ,ps[y],number[y]); return 0; }
为什么number[0]的长度是0??