如何在C中的字符串值前添加单个字符

时间:2019-04-15 11:10:41

标签: 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);

1 个答案:

答案 0 :(得分:2)

首先请注意

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;