c/c++语言开发共享C语言如何在字符数组中插入一个字符

在字符数组中插入一个字符以前都是照猫画虎,一直都没有自己亲自动手尝试过。这次亲自上阵,把自己的思路尽量理清并完成。设计思路定义一个字符数组a和标记插入位置的int型变量pos以及插入字符value。再

在字符数组中插入一个字符

以前都是照猫画虎,一直都没有自己亲自动手尝试过。这次亲自上阵,把自己的思路尽量理清并完成。

设计思路

C语言如何在字符数组中插入一个字符

  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 为结束标志。

错误示范: 

C语言如何在字符数组中插入一个字符

当遇到以上代码时,请千万不要忘记在输入字符前加getchar()清除掉缓冲区中的回车符。

正确示范:

C语言如何在字符数组中插入一个字符 

代码附录

#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]!=''; i++)	b[i]=a[i];  	b[pos]=value;  	for(int i=pos; b[i]!=''; 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] = '';  	for(i=0; i<cnt-place; ++i){  		str[cnt-i] = str[cnt-i-1];  	}      	str[place] = ch;  	   	printf("新的字符串为:%sn", str);  	free(str);  	  	system("pause");  	return 0;   }   

以上为个人经验,希望能给大家一个参考,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

需要了解更多c/c++开发分享C语言如何在字符数组中插入一个字符,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/1237842.html

(0)
上一篇 2022年9月10日
下一篇 2022年9月11日

精彩推荐