當前位置:首頁 » 編程語言 » c語言insert函數

c語言insert函數

發布時間: 2022-06-10 09:12:31

『壹』 c語言編寫函數insert(char s1[ ],char s2[ ],int pos),實現在字元串s1中的指定位置pos處插入字元串s2。

你寫這個貌似不能實現額
用string.h庫很容易實現的
要是你不能用string.h的話 你就再追問一次 我幫你把你這個改改 單貌似要改動的地方不少
#include <stdio.h>
#include <string.h>
void insert(char s1[],char s2[],int pos);
void main()
{
char s1[50],s2[50];
int pos;
gets(s1);
gets(s2);
printf("請選擇要插入的位置: ");
scanf("%d",&pos);
insert(s1,s2,pos);
}
void insert(char s1[],char s2[],int pos)
{
int i,a,b;
char o[20];
b=0;
a=strlen(s1);
for(i=pos;i<a;i++)
{
o[b]=s1[i];
b++;
}
o[b++]='\0';
s1[pos]='\0';
strcat(s1,s2);
strcat(s1,o);
printf("%s",s1);

}

『貳』 c語言編程 用指針編寫函數:insert(s1,s2,f),其功能是在字元串s1中的指定位置f處插入字元串s2

#include<stdio.h>

intinsert(char*s1,char*s2,intf)
{
char*cp,*tcp;

tcp=s1+strlen(s1);
cp=s1+f;

if(tcp<cp)
return-1;

while(tcp>=cp)
{
*(tcp+strlen(s2))=*tcp;
tcp--;
}

while(*s2!='')
{
*cp=*s2;
cp++;
s2++;
}

return0;
}

intmain(void)
{
charstr1[128];
charstr2[128];
intf;

gets(str1);
gets(str2);
scanf("%d",&f);

insert(str1,str2,f);

puts(str1);

return0;
}

『叄』 編寫一個函數insert(s1,s2,ch),實現在字元串s1中的指定字元ch位置處插入字元s2. 高財富哦

是這個意思嗎?

C語言實現,insert函數未對傳入字元串進行邊界檢測,如果傳入數組已滿,函數會更改在內存連續的地址上的未知內容,故需保證傳入數組未滿。如果要在函數中處理需增設一個參數傳入數組長度進行判斷,以下是代碼,包括測試的主函數部分:

#include<stdio.h>
#include<string.h>
voidinsert(char*s1,chars2,charch)
{
char*pos;
char*insert_flag;
for(pos=s1;*pos!=''&&*pos!=ch;pos++);//在s1里尋找字元ch
if(''==*pos)
{
printf("未找到字元'%c'! ",ch);
return;
}
for(insert_flag=s1+strlen(s1);*insert_flag!=ch;insert_flag--)//從s1指向字元串的結束符開始元素依次後移
{
*(insert_flag+1)=*insert_flag;
}
*(insert_flag+1)=*insert_flag;
*insert_flag=s2;
}

voidmain()
{
chars[20]="hello,frind";//把20改為12則數組滿
printf("插入前%s ",s);
if(strlen(s)!=sizeof(s)-1)
{
insert(s,'e','n');
printf("插入後%s ",s);
}
elseprintf("數組已滿,拒絕插入! ");

}

測試:

『肆』 C語言insert的用法

表示「插入」,它並不是C語言的一部分,用在函數名中可以表示插入元素。
例題:
#include
<iostream>
#include
<vector>
using
namespace
std;
int
main()
{
vector<int>
intArray;
int
i;
for(i=0;i<10;i++)
{
intArray.push_back(i);
cout<<intArray[i]<<"
";
}
cout<<endl;
intArray.insert(intArray.begin()+1,intArray.begin()+3,intArray.begin()+5);
for(i=0;i<intArray.size();i++)
cout<<intArray[i]<<"
";
system("pause");
return
0;
}

『伍』 C語言程序設計題,insert函數怎麼寫

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

intmain(){

chars[100]="Iamaboy.";
chart[50]="good";

voidinsert(chars[],intn,chart[]);

insert(s,8,t);
puts(s);

return0;
}

voidinsert(chars[],intn,chart[]){

intlengths=strlen(s);
intlengtht=strlen(t);
inti,j;

if(n>=lengths){
perror("Invalidindex. ");
exit(1);
}

chartail[lengths-n];
j=n;

for(i=0;;i++){
if(s[j]=='')
break;
tail[i]=s[j];
j++;
}

tail[i]='';
s[n]='';

s=strncat(s,t,lengtht);
s=strncat(s,tail,lengths-n);

}


運行結果如下:


『陸』 C語言insert的用法,詳細點哦

insert 只是一部分函數自帶的功能 , 不能直接使用,一般是STL 裡面函數的附加功能。比如說
vector #include <iostream>
#include <vector>
using namespace std;

int main()
{
vector<int> intArray;
int i;
for(i=0;i<10;i++)
{
intArray.push_back(i);
cout<<intArray[i]<<" ";
}

cout<<endl;
intArray.insert(intArray.begin()+1,intArray.begin()+3,intArray.begin()+5);

for(i=0;i<intArray.size();i++)
cout<<intArray[i]<<" ";

system("pause");
return 0;
}

『柒』 insert(a,10,number)在c語言中什麼意思

insert就名稱來看一般是插入操作的函數,
一般來說a是插入的數組,10是插入的位置,number是插入位置的值

『捌』 c語言鏈表插入一個新節點的函數問題

首先,主函數中,「請輸入插入的數據」那裡scanf應該是&b,這是引發崩潰的原因。

其次,insert函數的目的應該是想插入數據後仍是有序鏈表。但你的insert函數邏輯太亂,有些不必要的判斷,我修正了你的代碼,貼給你看看。(雖然你insert是想保證有序,但你在創建的時候沒有保證有序,所以最終結果不一定是有序。例如,創建 1,5,2,插入3,最後輸出的是 1,3,5,2)

代碼修改:

  1. scanf("%d", &b);

  2. 重寫了insert函數,簡化邏輯;

  3. 動態分配的內存記得釋放,增加freeNode釋放空間

#include<stdio.h>
#include<stdlib.h>
structlink
{
intdata;
structlink*next;
};
structlink*add(structlink*head);//創建鏈表
voiddisplay(structlink*head);//輸出數據
structlink*insert(structlink*head,intb);//插入新節點
voidfreeNode(structlink*); //釋放空間
intmain()
{
charc;
structlink*head=NULL;
printf("要創建一個鏈表嗎?");
scanf("%c",&c);
while(c=='y'||c=='Y')
{
head=add(head);
printf("要繼續創建節點嗎?");
scanf("%c",&c);
}
display(head);
intb;
printf("輸入插入的數據");
scanf("%d",&b);
head=insert(head,b);
display(head);
freeNode(head);
}
structlink*add(structlink*head)
{
intdata;
structlink*p=(structlink*)malloc(sizeof(structlink));
if(head==NULL)
{
head=p;
}
else
{
structlink*pr=head;//一個臨時指針pr先保存下head的地址
while(pr->next!=NULL)
{
pr=pr->next;
}
pr->next=p;
}
printf("輸入數據");
scanf("%d",&p->data);
p->next=NULL;
returnhead;
}
voiddisplay(structlink*head)
{
structlink*pr=head;
while(pr!=NULL)
{
printf("%d ",pr->data);
pr=pr->next;
}
}
structlink*insert(structlink*head,intb)
{
structlink*ptr=head,*prev=head;
structlink*newNode=(structlink*)malloc(sizeof(structlink));
newNode->data=b;
while(ptr&&b>ptr->data){
prev=ptr;
ptr=ptr->next;
}
newNode->next=ptr;
if(ptr==head) head=newNode;
else prev->next=newNode;

returnhead;
}

voidfreeNode(structlink*node){
if(!node) return;
freeNode(node->next);
free(node);
}

『玖』 insert_在C語言中是什麼意思

表示「插入」,它並不是C語言的一部分,用在函數名中可以表示插入元素。

『拾』 C語言,insert函數

我再Visualstudio下寫的程序

#include<stdio.h>
#include<stdlib.h>
#defineDATATYPE1int
#defineMAXSIZE100

typedefstruct
{DATATYPE1datas[MAXSIZE];
intlast;
}SEQUENLIST;

SEQUENLISTa;

intinsert(SEQUENLIST&a,DATATYPE1x,inti)
{
intk;
if(i<1||i>a.last+1||a.last>=MAXSIZE)
return0;
else
{
for(k=a.last;k>=i;k--)
a.datas[k]=a.datas[k-1];
a.datas[i-1]=x;
a.last=a.last+1;
for(i=0;i<a.last;i++)
printf("%d",a.datas[i]);
printf(" ");
printf("a.last=%d ",a.last);
return1;
}
}

intDelete(SEQUENLIST&a,inti)
//C++中的引用,不然該函數返回後,原來的結構體並未發生變化
{
intk;
if(i<1||i>a.last+1||a.last>=MAXSIZE)
return0;
else
{
for(k=i-1;k<a.last;k++)
a.datas[k]=a.datas[k+1];
a.last--;
for(i=0;i<a.last;i++)
printf("%d",a.datas[i]);
printf(" ");
printf("a.last=%d ",a.last);
}
}
intmain()
{
inti;
for(i=0;i<10;i++)
a.datas[i]=i+1;
a.last=10;
insert(a,99,5);
Delete(a,1); //刪除第一個元素
system("pause");
return0;
}

熱點內容
一台存儲可以配幾個擴展櫃 發布:2025-02-08 01:53:22 瀏覽:564
分布式存儲技術優缺點 發布:2025-02-08 01:51:37 瀏覽:245
linuxsuse重啟 發布:2025-02-08 01:49:27 瀏覽:411
java對稱加密 發布:2025-02-08 01:48:04 瀏覽:522
java報表框架 發布:2025-02-08 01:47:59 瀏覽:929
方舟手游怎麼防止踢出伺服器 發布:2025-02-08 01:42:44 瀏覽:690
c語言中函數的聲明函數 發布:2025-02-08 01:41:08 瀏覽:70
編譯termux 發布:2025-02-08 01:39:42 瀏覽:650
王者榮耀安卓哪裡看ios國服榜 發布:2025-02-08 01:25:54 瀏覽:630
解壓帶教程 發布:2025-02-08 01:16:33 瀏覽:760