C 如何将字符串的一半添加到旧字符串中?
假设我有一个 字符串[20] 如果我想使用fscanf从文件中读取字符串,并且由于如果我使用fscanf(),第一个字符将始终被跳过 然后我将执行以下类似操作:C 如何将字符串的一半添加到旧字符串中?,c,C,假设我有一个 字符串[20] 如果我想使用fscanf从文件中读取字符串,并且由于如果我使用fscanf(),第一个字符将始终被跳过 然后我将执行以下类似操作: string[0] = x //where x is the char from fgetc(); 然后我将调用fscanf,它将填充剩余的字符串[1-19]。例如,我如何在不使用stringcat的情况下归档它 我试过类似的东西 *string++;// but this give me a left operand error
string[0] = x //where x is the char from fgetc();
然后我将调用fscanf,它将填充剩余的字符串[1-19]。例如,我如何在不使用stringcat的情况下归档它
我试过类似的东西
*string++;// but this give me a left operand error
例如:
输入:
您好123 1.2'\n'
再见1240.02
代码:
如果要将
fscanf()
读取的字符串从数组的元素1开始,则可以使用以下代码:
fscanf(file2, "%18s", string+1);
string
是数组对象而不是指针,因此无法使用操作string++
对于数组对象。因为这相当于:
string = string + 1;
这里,您将为数组对象指定一个新值,这在C中是不允许的
要从元素1访问字符串数组,可以使用
string+1
(不将其分配给字符串数组)string+1
返回指向string
数组的元素1的指针为什么会跳过第一个字符?fscanf仅读取下一个字符,不是吗?不正确<代码>man fscanf和man printf
。或者读K&R。如果我读while((y=fgetc(file))!=EOF){fscanf()},那么它将只从第二个字符开始读取,但为什么要这样做呢?
string = string + 1;