Tag: char

C将char数组中的一个字符替换为另一个字符

我有以下C代码 #include int main(void){ char c[] = “ABC” printf(“%s “, c); c[1] = ‘B’; printf(“%s”, c); return 0; } 我想要的输出是ABC BBC但我得到的输出是ABC ABC 。 如何替换String / char数组中的第一个字符?

C中的char * string到hex arrary

我有char * para.mac ,字符串c8934641d0b7存储在其中。 我想将它转换为hex数组int m[6] ,make m[0]=0xc8; m[1]=0x93; … m[5]=0xb7; 我试着这样做: int i; int m[6]; sscanf(para.mac, “%x%x%x%x%x%x”, &m[0], &m[1], &m[2], &m[3], &m[4], &m[5]); for(i=0;i<6;i++) printf("%i \r\n",m[i]); 但它似乎不起作用。 而且我不知道为什么结果对我显示如下: 1178718391 0 0 134448233 8 134272063 我认为应该是 200(0xc8) 147(0x93) 70(0x46) 65(0x41) 208(0xd0) 183(0xb7) 所以有什么问题?

C字符串长度 – 这是有效的代码吗?

这种类型的表达式在C中是否有效(在所有编译器上)? 如果是的话,这是好的C吗? char cloneString (char clone[], char string[], int Length) { if(!Length) Length=64 ; int i = 0 ; while((clone[i++] = string[i]) != ‘\0’, –Length) ; clone[i] = ‘\0’; printf(“cloneString = %s\n”, clone); }; 这会更好,更糟,无动于衷吗? char *cloneString (char clone[], char string[], int Length) { if(!Length) Length=STRING_LENGTH ; char *r = clone ; while ( //(clone[i++] […]

将char数组中的数字存储到VC ++中的INTEGER变量中。

我的场景如下:(C ++) 在char a [10]中,数组a []具有元素(数字),如“1”,“2”,“3”等…. 说一个[0] =’1′; a [1] =’2′; a [2] =’3′; 现在a []存储3个字符’1’,’2’和’3’。 我想将它存储为int 123(整数123)。 如何在C ++中实现这一目标?

编辑一个char *数组

我有一个像这样的char *数组: char * gradient_xpm[] = {“abc”, “def”, “ghi”}; 我需要更改这些字符串的值。 我已经尝试过strcpy和=运算符,但它给了我一个分段错误。 例如: strcpy(gradient_xpm[1],”jkl”); gradient_xpm[1][2] = ‘x’; 我甚至无法编辑一个字符。 如何编辑这些值?

分配char指针数组

我有一些文件,我正在将内容读入char数组,我想将我从每个文件中读取的内容存储在一个字符数组中,以便我可以访问单独的字符数组(文件内容) index,我不确定如何执行此操作的语法。 我的理解是我需要将模式数组中的每个内存地址设置为每个char数组一个内存地址; 到存储在patternData中的char数组,但我不知道如何设置它。 我错过的语法是什么,我需要让它发生? 我试过的 我原以为如果我存储了一种char*那么我需要一个char**来存储char数组的单独数组。 我将使用以下表示法来访问char* ,以将模式索引的内存地址设置为 &patterns[INDEX] = &pData; 但是这不起作用。 有很多“char指针数组”问题,但我不确定将pData简单地分配给模式索引的正确方法。 char *tData; int tLength; char *pData; int pLength; char **patterns; void ReadFromFile(FILE *f, char **data, int *length) //This is what is passed into function int main(int argc, char **argv) { for (int i = 1; i <= 5; i++) { FILE […]

struct array中的strstr char数组

我有一个结构定义为; struct player { int no, age; char name[20]; } players[10]; 数组从文件中填充。 我尝试做的是,从用户获取输入,将输入添加到char数组,将其发送到循环中的search(char lookup [])函数和strstr name字段。 EDİT:对不起,我更正了订单。 我正试图在一个循环中strstr。 char *p = strstr(players[x].name, inputFromUser); 但是p总是为空。 我怎样才能做到这一点? 提前致谢。 编辑 – 代码添加… #include #include #include #include struct player { int no, age; char name[20]; } players[20]; void fillstruct(char *); void search(char []); int main(int argc, char *argv[]) { […]

使用char和scanf“%hhu”时输入值无效

所以这就是代码 void main() { unsigned char n,t; scanf(“%hhu %hhu”,&n,&t); printf(“%hhu %hhu”,n,t); } 问题是当我分别输入5和1时,输出为0和1. 0表示n ,1表示t 。 但是,当我将类型从char更改为int / unsigned时,输出是正确的:5和1。 问题是为什么用char输入(数字)输入会给出无效值?

将achex值转换为char *

如何将c中的hex值转换为等效的char*值。 例如,如果hex值为1df2则char *也应包含1df2 。 我正在使用VinC编译器和来自FTDI的VNC2 USB Chip的VinL链接器。 它有以下头文件; stdlib , stdio和string 。 这些是主要c库的子集,并没有明显的答案,如snprintf或sprintf 。 文档说以下类型是有效的, 对于在整个内核和驱动程序中使用的变量和函数类型,存在某些定义。 它们可用于vos.h头文件中的应用程序。 空指针和逻辑定义: #define NULL 0 #define TRUE 1 #define FALSE 0 变量类型定义: #define uint8 unsigned char #define int8 char #define int16 short #define uint16 unsigned short #define uint32 unsigned int #define pvoid unsigned char * function类型定义: typedef uint8 (*PF)(uint8); […]

循环跳过scanf它的条件。

我不明白为什么While循环只是加速并跳过scanf的char? 它甚至不会要求我的输入,只是循环就像没有明天一样。 #include int main() { int number; int multiply, ans; char choice; printf(“————————————-“); printf(“\n MULTIPLICATION TABLE “); printf(“\n————————————-“); do { printf(“\nEnter an integer number:”); scanf(“%d”, &number); printf(“\nMultiplication of %d is :-\n”, number); printf(“\n”); for(multiply=1; multiply<11; multiply++){ ans = number * multiply; printf(" %d", ans); } printf("\n"); printf("\nWould you like to continue? [Y] for Yes,[N] […]