char ** fizzBuzz(int n, int* returnSize){
int i;
*returnSize = n;
char ** res = (char**)malloc(sizeof(char*) * n);
char * each = (char*)malloc(sizeof(char)*n*9);
for(i=0; i<n; i++){
res[i] = &each[i*9];
if((i+1)%3==0){
if((i+1)%5==0){
strcpy(res[i],"FizzBuzz");
}else{
strcpy(res[i],"Fizz");
}
}else if((i+1)%5==0) {
strcpy(res[i],"Buzz");
}else{
//hh这种只对0-9有用
// res[i][0] = (i+1)+'0';
// res[i][1] = '\0';
// 打印给某个字符串
sprintf(res[i], "%d", i+1);
}
}
return res;
}
字符、字符串、指针。
有点尴尬,随便发发竟然还有人看、收藏。那我多些几句解答好了:
首先一个char
只能放一个字符,char
数组就能放一个字符串,放字符串的话一定要记得多一个地方放'\0'
这个字符,要不然输出是乱码。一个字符串用char*
表示,字符串数组就用char**
表示,并且开辟对应的地址空间。这就是下面代码做的事。
char ** res = (char**)malloc(sizeof(char*) * n);
char * each = (char*)malloc(sizeof(char)*n*9);
接下来这两个操作也是字符串常用的,具体可以自行百度:
strcpy(res[i],"FizzBuzz");
sprintf(res[i], "%d", i+1);