c语言数组实现:将一个字符串插入到另的指定位置

发布时间 : 2020/08/01 19:43

前言

接着昨天的话题,我们再来看看向C语言的数组中随机插入一个元素的方法。

假如是在python向列表中随机添加元素,我们每每使用insert()的方法。

l = [ 'Python' , 'C++' , 'Java' ] #插入元素 l . insert ( 1 , 'C' ) print ( l ) #插入元组,整个元祖被当成一个元素 t = ( 'C#' , 'Go' ) l . insert ( 2 , t ) print ( l ) #插入列表,整个列表被当成一个元素 l . insert ( 3 , [ 'Ruby' , 'SQL' ]) print ( l ) #插入字符串,整个字符串被当成一个元素 l . insert ( 0 , "http://c.biancheng.net" ) print ( l )

insert()的第一个参数是位置,第二个参数就是插入的值。

我们仍旧连续昨天的气势派头定义函数:

void insert_element ( int arr [], int n ) // n为数组的元素个数

函数的参数是数组名和数组长度,固然在我们定义的函数是需要包括我们所需插入的值和下标的。但是在覆盖数组元素时,我们应该从数组的末端开始不停将数组向后移。

完备代码:

void insert_element ( int arr [], int n ) //n为数组的元素个数 { int pos ; int insertion ; printf ( "请输入你要插入的位置:" ); scanf ( "%d" , & pos ); printf ( " \n " ); printf ( "请输入你要插入的值:" ); scanf ( "%d" , & insertion ); printf ( " \n " ); for ( int i = 0 ; i < n - 1 ; i ++ ) { if ( pos - 1 == i ) { for ( int j = n - 1 ; j >= pos ; j -- ) { arr [ j ] = arr [ j - 1 ]; } arr [ i ] = insertion ; } } }

C语言的数组始终是需要预先分派好其的长度,我们的函数功能就是向数组中插入一个元素。下面就来看看在主函数中怎样调用该函数:

int main () { int arr_2 [ 4 ] = { 1 , 4 , 5 }; insert_element ( arr_2 , 4 ); for ( int i = 0 ; i < 4 ; i ++ ) { printf ( "%4d" , arr_2 [ i ]); } return 0 ; }

运行结果:

欢迎关注微信订阅号“盘算机学习之家”,更多的干货分享在那!

c语言中insert如何使用

示例一:

char *insert(char *s1, char *s2, int n) { int len1 = 0, len2 = 0, !j = 0, len3, k = 0; char s4[30]; char *s3 = s4; if (s1 == NULL) return NULL; if (s2 == NULL) return s1; len1 = strlen(s1); len2 = strlen(s2); if(n>len1) return NULL; for (int i = 0; i<n; i++) { j++; } for (int i= 0; i<len1; i++) { s4[k++] = s1[i]; } for (int i = 0; i<len2; i++) s1[j++] = s2[i]; for(int i=n;i<len1;i++) s1[j++]=s4[i]; s1[j] = '\0'; return s1; } int main(void) { char *s1 = (char*)malloc(20 * sizeof(char)); char *s2 = (char*)malloc(20 * sizeof(char)); int n; char s3[30]; char *newstr = s3; printf("请输入第一个字符串:"); scanf("%s", s1); printf("请输入第二个字符串:"); scanf("%s", s2); printf("请输入插入的位置:"); scanf("%d", &n); newstr = insert(s1, s2, n); printf("%s\n", newstr); getchar(); system("pause"); return 0; }

结果:

示例二:插入后原字符串背面的字符去掉了

void Insert(char* s1, char* s2, int n) { char *result = (char*)malloc(20 * sizeof(char)); char *temp = result;//保存result的初始地点,由于背面要改变result //把s1的一部分赋给result for (int i = 0; i<n; i++) { *result = *(s1++); result++; } //把s2的全部内容赋给result while (*s2 != '\0') { *result = *(s2++); result++; } *result = '\0';//字符串结束符 printf("%s\n", temp); } int main() { char *s1 = (char*)malloc(20 * sizeof(char)); char *s2 = (char*)malloc(20 * sizeof(char)); int n; printf("请输入第一个字符串:"); scanf("%s", s1); printf("请输入第二个字符串:"); scanf("%s", s2); printf("请输入插入的位置:"); scanf("%d", &n); Insert(s1, s2, n); getchar(); system("pause"); return 0; }

结果:

下面通过代码给大家介绍c++ string insert() 函数,详细内容如下:

basic_string& insert (size_type pos, const basic_string& str);

在原串下标为pos的字符前插入字符串str

basic_string& insert (size_type pos, const basic_string& str, size_type pos1, size_type n);

str从下标为pos1开始数的n个字符插在原串下标为pos的字符前

basic_string& insert (size_type pos, size_type n, char c);

在原串下标为pos的字符前插入n个字符c

代码:

 #include<iostream> using namespace std; int main() { string str="hello"; string s="Hahah"; str.insert(1,s);//在原串下标为1的字符e前插入字符串s cout<<str<<endl; string str1="hello"; char c='w'; str1.insert(4,5,c);//在原串下标为4的字符o前插入5个字符c cout<<str1<<endl; string str2="hello"; string s2="weakhaha"; str2.insert(0,s2,1,3);//将字符串s2从下标为1的e开始数3个字符,分别是eak,插入原串的下标为0的字符h前 cout<<str2<<endl; return 0; }

运行结果:

在这里插入图片描述 知识点增补:C++ string类insert函数

string的成员函数insert有以下多种重载:

string &insert(int p0, const char *s);——在p0位置插入字符串s

string &insert(int p0, const char *s, int n);——在p0位置插入字符串s的前n个字符

string &insert(int p0,const string &s);——在p0位置插入字符串s

string &insert(int p0,const string &s, int pos, int n);——在p0位置插入字符串s从pos开始的一连n个字符

string &insert(int p0, int n, char c);//在p0处插入n个字符c

iterator insert(iterator it, char c);//在it处插入字符c,返回插入后迭代器的位置

void insert(iterator it, const_iterator first, const_iteratorlast);//在it处插入从first开始至last-1的全部字符

void insert(iterator it, int n, char c);//在it处插入n个字符c

总结

到此这篇关于C++string中的insert()插入函数的文章就介绍到这了,更多相关c++ string insert()插入函数内容请搜索我们从前的文章或继续欣赏下面的相关文章盼望大家以后多多支持我们!

本文网址: http://www.directapkdownloader.com/d/202071201814_4998_2935782622/home