How to c中通过指针将字符串字符数组中的元素添加到另一个字符数组?下面我给出了代码,请更正它并提出任何建议,因为我没有得到满意的答案,我只想通过仅使用那里的指针从“缓冲区”数组中复制“复制”数组中的相同字符串?
char buffer[5] = "stop"; // Buffer character array
char copy[5]; // Copy character empty array
// Pointers
char *buffer_ptr, *copy_ptr;
buffer_ptr = buffer;
copy_ptr = copy;
int i;
for ( i = 0; i < 4; i++)
{
strncpy(copy_ptr, buffer_ptr, 1); // Here I want to copy string from buffer_pointer to copy_ptr
buffer_ptr = buffer_ptr + 1; // Here buffer_pointer pointer address is up by 1
copy_ptr = copy_ptr + 1; // Here copy_pointer pointer address is up by 1
}
printf("%s\n", copy);
return 0;
}
看起来您几乎正在尝试发明一种标准代码中已存在的字符串操作方法。您实际上正在代码中使用“strcpy”函数。以下是我相信您正在尝试做的事情的简化版本。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char buffer[5] = "stop"; // Buffer character array
char copy[5]; // Copy character empty array
strcpy(copy, buffer);
printf("%s\n", copy);
return 0;
}
如果由于某种原因,您需要在将字符放入“复制”字符串之前操作“缓冲区”字符串中的数据(例如,变为大写或小写),则可以使用如下方法。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char buffer[5] = "stop"; // Buffer character array
char copy[5]; // Copy character empty array
for (int i = 0; i < strlen(buffer); i++)
{
/* If needed, some processing could be done to the buffer character */
copy[i] = buffer[i];
}
printf("%s\n", copy);
return 0;
}
我希望这能给你一些思考的空间。
Regards.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)