leetcode557:反转字符串中的单词
给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
char * reverseWords(char * s){
int length=strlen(s);
char* ans=(char*)malloc(sizeof(char)*(length+1));
ans[length]=0;
int i=0,j=length;
while(i<length){
int start=i;
while(i<length&&s[i]!=' '){
i++;
}
for(int j=start;j<i;j++){
ans[j]=s[start+i-j-1];
}
while(i<length&&s[i]==' '){
ans[i]=' ';
i++;
}
}
return ans;
}
问题:
char* ans=(char*)malloc(sizeof(char)*(length+1));
ans[length]=0;
为什么会是乘(length+1),然后把ans[length]=0?