解题技巧?
????????1.使用sprintf函数打印字符串。?sprintf?跟?printf?在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中。引用:C 字符串函数 sprintf()、snprintf() 详解_love、reading的博客-CSDN博客
sprintf的用法:
sprintf(s, "%d", 123); //把123打印成字符串,让s=“123”
????????2.二级指针引用:深入 char * ,char ** ,char a[ ] ,char *a[] 内核_行人事,知天命-CSDN博客_char*?
?C语言中没有字符串类型。所以用二级指针来实现。使*answer数组存储一个字符串的地址,**answer则指向代表字符串的那个地址。这样就可以在C中实现打印字符串数组。
C语言代码实现
char ** fizzBuzz(int n, int* returnSize){
char ** answer = (char**)malloc(sizeof(char*) * n); //储存结果的字符串数组。
*returnSize = n;
for(int i=1; i <= n; ++i){
//循环一次一维数组就malloc一次。
answer[i-1] = (char*)malloc(sizeof(char) * 8);//为每个字符串分配空间,最多的是8个字符。
if(i % 3 == 0 && i % 5 == 0)
answer[i-1] = "FizzBuzz";
else if(i % 3 == 0)
answer[i-1] = "Fizz";
else if(i % 5 == 0)
answer[i-1] = "Buzz";
else
sprintf(answer[i-1], "%d", i); //整形转换为字符串形式存到一维数组中。
}
return answer;
}
最后,码字不易,希望大家可以一键三连,关注作者。你们的支持就是我更新的最大动力!
|