C语言问题--关于string得去掉双引号
发布网友
发布时间:2022-11-04 12:55
我来回答
共2个回答
热心网友
时间:2023-11-04 18:11
#include "string.h"
insert(char a[],int n,char *p){
int j=strlen(a);
int i;
int m=0;
char b[30];
while(*p){ /*去掉字符串P中的“*/
if(*p!='"')
b[m++]=*p;
p++;
}
i=strlen(b);
if(n>j)/*如果N大于数组长度,查到最后*/
n=j;
for(m=j;m>=n;m--){ /*移动数组为插入字符串空出位置*/
a[m+i-1]=a[m-1];
}
for(m=0;m<i;m++){ /*插入字符串*/
a[m+n]=b[m];
}
}
main(){
char a[100]="0123456789";
char *p,*q;
int n;
while(1){
printf("Command:");
scanf("%s %d %s",p,&n,q);
printf("-------------------------------------------\n");
if(strcmp(p,"insert")!=0)
printf("invaild command\n");
else{
insert(a,n,q);
printf("%s\n",a);
}
printf("-------------------------------------------\n");
}
}
热心网友
时间:2023-11-04 18:11
自己写了个,不知道合题意不
#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;
void insert(int pos, char const* sur);
char a[] = "abcdefghijk";
char dest[256];
int main(void)
{
int position;
char in[256];
cin >> position;
cin >> in;
insert(position, in);
cout << dest << endl;
return 0;
}
void insert(int pos, char const* sur)
{
int len = strlen(sur);
int a_len = strlen(a);
if(pos > a_len)/*当插入位置大于一共的个数时,就插在最后 */
pos = a_len;
strncpy(dest,a,pos);
strcpy(dest + pos , sur);
strcpy(dest + pos + len ,a+pos);
}