C語言如何在字符數(shù)組中插入一個字符
在字符數(shù)組中插入一個字符
以前都是照貓畫虎,一直都沒有自己親自動手嘗試過。這次親自上陣,把自己的思路盡量理清并完成。
設(shè)計思路

- 定義一個字符數(shù)組a和標(biāo)記插入位置的int型變量pos以及插入字符value。
- 再定義一個數(shù)組b,大小應(yīng)該比a大1(更大當(dāng)然更好),用于pos位后的元素的賦值。
- 賦值,將a中所有元素copy到b。
- 在pos位置前的元素不改動,pos位置的元素改為value。b[pos]=value;
- 對于pos位置后的元素:b[pos+1]=a[pos] //此處的pos執(zhí)行自增運(yùn)算
- 數(shù)組b即所得數(shù)組。
問題思索
關(guān)于gets(),scanf()緩沖區(qū)的理解:
gets()是以換行符為結(jié)束標(biāo)志的。當(dāng)遇到換行符時,函數(shù)停止讀取,回車符不會被載入緩沖區(qū)。scanf()是以\t \n space 為結(jié)束標(biāo)志。
錯誤示范:

當(dāng)遇到以上代碼時,請千萬不要忘記在輸入字符前加getchar()清除掉緩沖區(qū)中的回車符。
正確示范:
代碼附錄
#include <stdio.h>
#include <string.h>
//在char數(shù)組中的第pos個位置添加字符
int main(){
char a[500],b[500];
int pos;
char value;
gets(a);
scanf("%d",&pos);
getchar();
scanf("%c",&value);
for(int i=0; a[i]!='\0'; i++) b[i]=a[i];
b[pos]=value;
for(int i=pos; b[i]!='\0'; i++) b[i+1]=a[i];
puts(b);
} 字符串中插入字符問題
由鍵盤任意輸入一串字符,再輸入一個字符和一個位置,將此字符插入在此串字符的這個位置上。
如:原串為abcdef,插入字符為k,位置為2,新串為abkcdef。
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int length, i, place, cnt=0;
char* str;
char ch;
//為字符獲得足夠的內(nèi)存空間
printf("請輸入這串字符的最大長度:");
scanf("%d", &length);
str = (char*)malloc(length*sizeof(char)+1);
printf("請輸入這串字符:");
scanf("%s", str);
printf("請輸入你要插入的字符:");
scanf("\n%c", &ch);
printf("請輸入你要插入字符的位置:");
scanf("%d", &place);
//判斷字符串中字符的數(shù)量
while(str[++cnt]);
//向后移位
str[cnt+1] = '\0';
for(i=0; i<cnt-place; ++i){
str[cnt-i] = str[cnt-i-1];
}
str[place] = ch;
printf("新的字符串為:%s\n", str);
free(str);
system("pause");
return 0;
}
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用root權(quán)限運(yùn)行自己所編譯程序的解決方法
本篇文章介紹了,使用root權(quán)限運(yùn)行自己所編譯程序的解決方法。需要的朋友參考下2013-05-05
VC++實現(xiàn)的OpenGL線性漸變色繪制操作示例
這篇文章主要介紹了VC++實現(xiàn)的OpenGL線性漸變色繪制操作,結(jié)合實例形式分析了VC++基于OpenGL進(jìn)行圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下2017-07-07
C語言實現(xiàn)經(jīng)典24點(diǎn)紙牌益智游戲
這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)經(jīng)典24點(diǎn)紙牌益智游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-10-10
Qt重寫QStackedWidget模擬實現(xiàn)home界面滑動效果
這篇文章主要為大家詳細(xì)介紹了Qt如何通過重寫QStackedWidget模擬實現(xiàn)home界面滑動效果,文中的實現(xiàn)過程講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-11-11

