如何编辑以下某个字符?
How do I edit a certain char in the following?
所以我有以下代码:
char *something = (char *) calloc(LENGTH, sizeof(char));
长度定义为10。
我在记忆中像这样想象它:
| [0] | [1] | [2] | [3] | [4] | [5] | [6] | [7] | [8] | [9] | \0 |
如何在不定义整个字符的情况下更改 [1]?然后可以定义[2],以此类推...
每次更改不得影响之前的更改!
谢谢!
The length is defined as 10. I'm imaging it like this in memory
不正确。首先,只有 10 个字节(您的图片显示 11),其次,所有字节都填充了 '[=11=]'
(calloc()
填充)。
How would I change [1] without defining the whole char? And then be able to define [2], and so on...
"change" 如果你的意思是分配值,那么你可以像这样索引它们:
something[1] = 'a';
something[5] = 'q';
等等。
但请记住,将它用作 C 字符串可能不起作用(例如,使用 printf("%s", something);
打印 something
),因为存在中间零字节。
您的代码
char *something = (char *) calloc(LENGTH, sizeof(char));
给你 10(不是 11)个字节,全部初始化为 0。
你可以在这里改变你想要的任何字节
something[1] ='?';
如果您使用标准例程,例如printf
这当然会在第一个字节中找到 '0' 并将其解释为字符串的结尾。
完成后不要忘记释放它
free(something);
所以我有以下代码:
char *something = (char *) calloc(LENGTH, sizeof(char));
长度定义为10。 我在记忆中像这样想象它:
| [0] | [1] | [2] | [3] | [4] | [5] | [6] | [7] | [8] | [9] | \0 |
如何在不定义整个字符的情况下更改 [1]?然后可以定义[2],以此类推...
每次更改不得影响之前的更改!
谢谢!
The length is defined as 10. I'm imaging it like this in memory
不正确。首先,只有 10 个字节(您的图片显示 11),其次,所有字节都填充了 '[=11=]'
(calloc()
填充)。
How would I change [1] without defining the whole char? And then be able to define [2], and so on...
"change" 如果你的意思是分配值,那么你可以像这样索引它们:
something[1] = 'a';
something[5] = 'q';
等等。
但请记住,将它用作 C 字符串可能不起作用(例如,使用 printf("%s", something);
打印 something
),因为存在中间零字节。
您的代码
char *something = (char *) calloc(LENGTH, sizeof(char));
给你 10(不是 11)个字节,全部初始化为 0。
你可以在这里改变你想要的任何字节
something[1] ='?';
如果您使用标准例程,例如printf
这当然会在第一个字节中找到 '0' 并将其解释为字符串的结尾。
完成后不要忘记释放它
free(something);