Tag: 字符数组

如何从函数返回可变大小的字符串?

我需要一个函数的工作代码,它将返回一个随机长度的随机字符串。 我想要做的事情将通过以下代码更好地描述。 char *getRandomString() { char word[random-length]; // …instructions that will fill word with random characters. return word; } void main() { char *string = getRandomString(); printf(“Random string is: %s\n”, string); } 为此,我严格禁止使用除stdio.h之外的任何其他包含。 编辑:这个项目将适合为PIC微控制器编译,因此我不能使用malloc()或类似的东西。 我在这里使用stdio.h的原因是我能够使用GCC检查输出。 目前,此代码给出了此错误.- “warning:function返回局部变量的地址[默认启用]” 然后,我认为这可行.- char *getRandomString(char *string) { char word[random-length]; // …instructions that will fill word with random characters. string = […]

制作一个数组来保存C中的字符数组

我的C现在不仅仅是生锈,所以我没有创造出我认为应该非常基本的东西。 允许我将字符数组称为此post的字符串。 它会让我和你都清楚。 我所拥有的是一个可以容纳1个或更多字符串的数组。 例如{“ab”,“cd”,“ef”}。 我想创建另一个数组来存储字符串数组的多个版本。 所以像{{“ab”,“cd”,“ef”},{“gh”,“ij”},{“kl”}}。 我现在拥有的是: char *arrayOfStrings[50]; // a single array to hold multiple strings char **arrayOfArraysOfStrings[10]; // array to hold multiple snapshots of arrayOfStrings 字符串数组随着时间的推移而变化,我正在使用字符串数组数组来基本保存arrayOfStrings的历史快照。 当我需要访问数据的快照数组时,我的问题出现了。 这是我必须将内容放入快照数组的代码: arrayOfArraysOfStrings[input_index] = arrayOfStrings; // you can assume input_index is updated correctly, I’ve already checked that. 这似乎是不正确的,因为当我尝试访问并打印出快照数组的内容时,它只打印出来自最新的arrayOfStrings的信息。 我想要的想法是将arrayOfChars所指向的地址存储在快照数组的一个条目中,以便我以后可以访问它。 现在,访问快照数组中的条目是这样完成的: arrayOfArraysOfChars[historicalIndex][indexOfTargetChar] 我想回答几个问题: 我概述的方法是否适用于我正在尝试做的事情,或者我的整体逻辑中是否存在缺陷? 我目前的代码出了什么问题?如何解决? 有没有更好的方法来实现这一点,如果是这样,数组的初始化,数组的添加和数组的读取如何工作? –edit […]

输出C字符串程序

#include int main() { char s[2]=”a”; s[1]=’b’;s[2]=’c’;s[3]=’d’;s[5]=’e’; printf(“%s $%c$”,s,s[4]); return 0; } 1.当我在C(gcc-4.7.2)中运行该程序时,由于缺少空字符(’\ 0’),我预期运行时错误。 2.如果程序仍然成功编译并执行,因为s [4]尚未初始化,我预计那个地方会有一些垃圾值。但这里我也错了。 上述程序的输出是:abcde $$两个$(dollor)之间没有字符表示printf跳过s [4]。 这是一个相同的ideone链接: http ://ideone.com/UUQxb2 解释这种行为的原因(输出)?