![](/img/trans.png)
[英]How to assign a single character from a string to another string in C?
[英]How to prepend a single character to a string value in c
我有代码,应该在字符串的开头添加一个字符。
这是我的字符串和角色:
char array[12]="12345678"
char var="K"
完成的数组的值必须像这样:
array="K12345678"
目前,我这样写:
char temp[12]={0}
char array[12]="12345678"
char var="K"
strcpy(temp,var);
strncat(temp,array,sizeof(array));
strcpy(array,temp);
首先请注意
char var="K"
是不正确的。 初始化一个char
char var='K';
然后注意
strcpy(temp,var);
是非法代码,因为var
不是字符串,而是单个字符。
您可以通过以下方法解决此问题:
char temp[12]={0};
char array[12]="12345678";
char var='K';
temp[0] = var; // Put the char as first character of temp
strncat(temp,array,sizeof(array));
strcpy(array,temp);
更好的选择是memmove
-类似:
// Move the current string 1 to the right (incl. the zero termination)
memmove(array+1, array, strlen(array) + 1);
// Insert the char in front
array[0] = var;
如果您不想使用memmove
,也可以做一个简单的循环:
size_t i = strlen(array);
do
{
array[i+1] = array[i];
--i;
} while (i > 0);
array[0] = var;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.