簡體   English   中英

如何在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM