日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C語言如何在字符數組中插入一個字符_C 語言

作者:FlyJapan_viba ? 更新時間: 2022-08-10 編程語言

在字符數組中插入一個字符

以前都是照貓畫虎,一直都沒有自己親自動手嘗試過。這次親自上陣,把自己的思路盡量理清并完成。

設計思路

  1. 定義一個字符數組a和標記插入位置的int型變量pos以及插入字符value。
  2. 再定義一個數組b,大小應該比a大1(更大當然更好),用于pos位后的元素的賦值。
  3. 賦值,將a中所有元素copy到b。?
  4. 在pos位置前的元素不改動,pos位置的元素改為value。b[pos]=value;
  5. 對于pos位置后的元素:b[pos+1]=a[pos] //此處的pos執行自增運算
  6. 數組b即所得數組。

問題思索

關于gets(),scanf()緩沖區的理解:

  • gets()是以換行符為結束標志的。當遇到換行符時,函數停止讀取,回車符不會被載入緩沖區。
  • scanf()是以\t \n space 為結束標志。

錯誤示范:?

當遇到以上代碼時,請千萬不要忘記在輸入字符前加getchar()清除掉緩沖區中的回車符。

正確示范:

?

代碼附錄

#include <stdio.h>
#include <string.h>
//在char數組中的第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;
	
	//為字符獲得足夠的內存空間 
	printf("請輸入這串字符的最大長度:");
	scanf("%d", &length);
	str = (char*)malloc(length*sizeof(char)+1);
	
	printf("請輸入這串字符:"); 
	scanf("%s", str);
	
	printf("請輸入你要插入的字符:");
	scanf("\n%c", &ch);	
	printf("請輸入你要插入字符的位置:");
	scanf("%d", &place);
	
	//判斷字符串中字符的數量 
	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; 
} 

原文鏈接:https://blog.csdn.net/FlyJapan_viba/article/details/79111861

欄目分類
最近更新