Tag: char

如何在C中将char指针数组复制到另一个

我试图将char指针数组存储到另一个char指针数组。 我正在获得相同的分段错误。 int main(int argc, const char* argv[]) { int argcCpy = argc; char* argvCpy[10] = {}; for(argcCpy = argc; argcCpy>0; argcCpy–) { argvCpy[argcCpy] = (char *) malloc(strlen(argv[argcCpy])); memcpy(argvCpy[argcCpy], argv[argcCpy], strlen(argv[argcCpy])); printf(“\nCount: %d, string: %s”, argcCpy, argvCpy[argcCpy]); } return 0; } 我花了足够的时间来完成这项工作,但我无法做到。 此外,已经提出了同样的问题,这个问题也没有得到答复。 如果有人可以让我知道相同的工作代码,那将非常有帮助。 希望这个回答。 类似问题的链接没有被发现 – C初学者 – 将char *数组复制到另一个char *数组 谢谢。

将单字符串转换为C中的相应字符串

我需要将一个unicoded字符串转换为适当的语言。 我需要逐行读取文本文件。 有一条线可能包含一个像这样的unicode \ XE6 \西飞\ XA2 \ xE8 \ XBF \ x8E 这基本上是一个等于的中文文本 欢迎 现在我需要从文本文件中删除此行(\ xE6 \ xAC \ xA2 \ xE8 \ xBF \ x8E),将此unicode转换为中文文本,将此中文文本附加到文本文件中。 以下是我的data.txt文件的内容: testing programming \xE6\xAC\xA2\xE8\xBF\x8E development 我想将文件内容作为: testing programming development欢迎 以下是我到目前为止所做的工作 #include #include #include #define MAX 256 int main() { int ctr = 0; char ch; FILE *fptr1, *fptr2; […]

C snprintf追加struct member char *

当我打印出result-> value时,我得到垃圾(来自其他内存区域的文本)和free():无效指针 我试图安全地将一个字符串附加到现有的char *(结果的值成员,其结果是一个实例) unsigned const NAME_BUFFER=100; unsigned const VALUE_BUFFER=1000; typedef struct { char *name; int ID; char *value; } props; … static Bool myfunc(props *result) { unsigned char *pointer; result->name=malloc(NAME_BUFFER); result->value=malloc(VALUE_BUFFER); // not sure I need to do this, previous instances of the code produced // output such as the quick…(null)someoutput // which I […]

C中多维数组程序中的错误

我已经制作了一个涉及多维数组的C程序(它打印了一个多维数组的字符)来回顾一下,但我遇到了一个bug。 我对该计划的预期成果是: . . . A . . . . . 但是我得到的输出是: . . A //Not meant to be ‘A’ but rather a ‘.’ A . . . . . 我想知道如何在位置[0] [2]中获得额外的’A’,以及如何解决这个问题。 这是我的代码: #include void initArray(char shape[][2]); main() { char shape[2][2]; int i, j; initArray(shape); shape[1][0] = ‘A’; printf(“%c\n%c\n%c\n”, shape[0][0], shape[0][1], shape[0][2]); printf(“%c\n%c\n%c\n”, shape[1][0], shape[1][1], […]

C:将字符串文件读入char * s数组

我有类似的东西(没有间距问题),我正在读取一个文件,其中的字符串由#符号分隔,并尝试将每个字符串读取为char * s数组。 但是,每个包含字符串的char*都是字符串的确切长度。 虽然这是一个小马车。 char * fragments[1000]; char temp[20]; while (i < numFrags) { if (fscanf(fp, "#%15[^#]#", temp) == 1) { char entry[strlen(temp)]; entry = strcpy(entry, temp); fragments[i++] = entry; printf("%d\n", strlen(temp)); } } 思考?

跳过一些scanf介于两者之间

在这个程序中,第二个和第四个scanf跳过,不知道原因。 有人可以告诉原因吗? #include main() { int age; char sex,status,city; printf(“Enter the persons age \n”); scanf(“\n%d”,&age); printf(“enter the gender\n”); scanf(“%c”,&sex); printf(“enter the health status”); scanf(“%c”,&status); printf(“where the person stay city or village”); scanf(“%c”,&city); if(((age>25)&&(age25&&age25&&age<35&&sex=='m'&&status=='b'&&city=='v') printf("60"); else printf("no"); }

为什么短*而不是char *为字符串? char *和unsigned char *之间的区别?

正如标题所说,我有两个问题。 编辑 :为了澄清,他们实际上并没有使用char和short ,他们确保它们是特定typedef的8位和16位。 然后将实际类型称为UInt8和UInt16 。 1.问题 iTunes SDK使用unsigned short* ,需要字符串 。 使用它而不是char* / unsigned char*什么好处? 如何将其转换为char* ,以及使用此类型时有何不同? 2.问题 我只看到char*当时必须存储一个字符串。 我什么时候应该使用unsigned char* ,或者它没有任何区别?

c char 到jstring printf适用于int类型但不适用于字符串

我们有供应商提供的api,其结构定义为 typedef struct { char duo_word[8]; } duo_word; 他们向我们发送了这个结构中的数据,然后我们必须通过jni传递给我们的java应用程序。 printf(“Number: : %i\n”, duo_word_inst); 打印正确的int值,例如52932,但是 printf(“Number: : %s\n”, duo_word_inst); 没有打印。 更重要的是,如果我在我的java进程下面使用jni代码接收乱码。 jstring jstrBuf = (*env)->NewStringUTF(env, (char*)(duo_word_inst)); (*env)->SetObjectField(env, *ret_obj, fld_id, jstrBuf); 发送乱码给java例如ÄÎ // I have got some example data captured from VS debugger below. duo_word duo_word_inst = { .duo_word = { ‘º’, ‘\b’, ‘\x1’, ‘\0’, ‘À’, ‘\xe’, […]

c和objective-c – const char *和char *

我有一个function: -(void)ADPCMDecode:(char *)indata : (short *)outdata :(long)len { indata是一个char,函数做指针算术迭代一段len,修改outdata,这是一个简短的,我需要做指针运算来从中获取值。 我试图使用以下方法调用该函数: const char *modulatedBytes1 = [modulatedAudio bytes]; char *modulatedBytes [] = modulatedBytes1; unsigned int moduleatedLength = [modulatedAudio length]; short *decompressedBytes = NULL; [self ADPCMDecode:modulatedBytes :decompressedBytes :moduleatedLength]; DLog(@”%hi”,decompressedBytes[1]); 我在这一行得到了一个BAD ACCESS错误: *outp++ = valprev; 在函数内,因为我传递一个constant char *而不是char * 我应该如何调用该函数,以及如何从中获取输出? 我没有C的背景,这就是为什么我不明白如何去做这个。 以下是同一问题的C唯一版本: https : //pastee.org/d3y3z

数组K&R 1.6字符?

在第23页的K&R第二版中,有一些代码 if (c >= ‘0’ && c <= '9') ++ndigit[c-'0']; 它继续。 我的问题是,为什么整数都有’在每一边? 什么是c-‘0’?