Tag: char

C sizeof char指针

为什么这个char变量的大小等于1? int main(){ char s1[] = “hello”; fprintf(stderr, “(*s1) : %i\n”, sizeof(*s1) ) // prints out 1 }

对stricmp的未定义引用

我正在尝试创建一个方法来查找并替换字符串中的字符串,但我似乎在编译时遇到了一些错误。 我能找到一些帮助来弄清楚发生了什么吗? void replaceString(char *find, char *replace) { int len_string,i; char temp[30]; len_string=strlen(find); while(1) { for(i=0;i<len_string;i++) temp[i]=fgetc(edit); temp[i+1]=NULL; /* the stricmp() is used for comparing both string. */ if(stricmp(find,temp)==0) { fprintf(edit,"%s ",replace); fclose(edit); exit(1); } fseek(edit,-(len_string-1),1); } } 我在编译时获得的错误是对stricmp的未定义引用。 我知道这不是正确的编码约定,但编辑(FILE类型的对象)当前是一个全局变量。

什么是C / C ++中的“字节”

例如,这是fread的参考: size_t fread ( void * ptr, size_t size, size_t count, FILE * stream ); 读取一个count元素数组,每个元素的大小为“size bytes”…那么有多少BITS会读取一个fread(&x, 1, 1, stream) ? 八或CHAR_BIT ?

可以/为什么在返回类型中使用char *而不是const char *会导致崩溃?

我在某处读到如果你想要一个C / C ++函数来返回一个字符数组(而不是std :: string),你必须返回const char *而不是char *。 执行后者可能会导致程序崩溃。 有人能够解释这是否属实? 如果是真的,为什么从一个如此危险的函数返回一个char *? 谢谢。 const char * my_function() { …. } void main(void) { char x[] = my_function(); }

C标准:字符集和字符串编码规范

我发现C标准(C99和C11)在字符/字符串代码位置和编码规则方面含糊不清: 首先,标准定义the source character set和the execution character set 。 本质上它提供了一组字形,但没有将任何数值与它们相关联 – 那么什么是默认字符集? 我不是在这里询问编码,而只是字形/曲目到数字/代码点映射。 它确实将universal character names定义为ISO / IEC 10646,但它是否说这是默认的字符集? 作为上述的扩展 – 我找不到任何说明数字转义序列\ 0和\ x代表什么字符的内容。 从C标准(C99和C11,我没有检查ANSI C)我得到了关于字符和字符串文字的以下内容: +———+—–+————+———————————————-+ | Literal | Std | Type | Meaning | +———+—–+————+———————————————-+ | ‘…’ | C99 | int | An integer character constant is a sequence | | | | […]

使用char数组进行C struct初始化

我有一个C结构定义如下: struct Guest { int age; char name[20]; }; 当我创建一个Guest变量并使用以下内容对其进行初始化时: int guest_age = 30; char guest_name[20] = “Mike”; struct Guest mike = {guest_age, guest_name}; 我得到了关于第二个参数初始化的错误,它告诉我guest_name不能用于初始化成员变量char name[20] 。 我可以这样做来初始化所有: struct Guest mike = {guest_age, “Mike”}; 但这不是我想要的。 我想按变量初始化所有字段。 如何在C中执行此操作?

c中的查找表

我在C中创建一个查找表当我定义它时: typedef struct { char* action; char* message; } lookuptab; lookuptab tab[] = { {“aa”,”bb”}, {“cc”,”dd”} }; 它编译没有错误,但当我做这样的事情: typedef struct { char* action; char* message[]; } lookuptab; lookuptab tab[] = { {“aaa”, {“bbbb”, “ccc”}}, {“cc”, {“dd”, “eeeee”}} }; 我收到以下错误: 错误:在嵌套上下文中初始化灵活数组成员 错误:(接近初始化’tab [0] .message’) 如何在第二个示例中初始化选项卡数组? 注意:我知道选项卡数组中的所有值。 更新:消息可以是不同的大小,例如 typedef struct { char* action; char* message[]; } lookuptab; […]

c中是否有一个函数会返回char数组中char的索引?

c中是否有一个函数会返回char数组中char的索引? 例如: char values[] = “0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”; char find = ‘E’; int index = findInedexOf( values, find );

scanf格式说明符中的星号是什么意思?

所以我偶然发现了这段代码,我无法弄清楚它的用途是什么,或者它是如何工作的: int word_count; scanf(“%d%*c”, &word_count); 我的第一个想法是%*d引用了char指针或禁止word_count取得char变量。 有人可以对此有所了解吗?

将char缓冲区传递给函数并获取缓冲区的大小

我已将缓冲区设置为100.我在声明缓冲区的main函数中显示缓冲区。 但是,当我将缓冲区传递给函数并获得sizeof’4’时,我认为它应该是100,因为这是我在main中创建的缓冲区的大小。 输出:缓冲区大小:100 sizeof(缓冲区):4 #include #include void load_buffer(char *buffer); int main() { char buffer[100]; printf(“buffer size: %d\n”, sizeof(buffer)); load_buffer(buffer); return 0; } void load_buffer(char *buffer) { printf(“sizeof(buffer): %d\n”, sizeof(buffer)); }