C语言问题--关于string得去掉双引号 15

有个问题想请大家帮忙下,就是:初始时是给定一排东西的,里面有字母,有数字比如0123456789abcdefghij0123456789然后要用户输入命令,这里只考虑输入... 有个问题想请大家帮忙下,就是:
初始时是给定一排东西的,里面有字母,有数字
比如0123456789abcdefghij0123456789
然后要用户输入命令,这里只考虑输入insert的情况,
当用户输入其他时,显示出invaild command
市insert时,要用户输入位置和要插入的东西,
可以是字母或者数字,但前后是有双引号的
所以要求1,需要在main之外的 function中去掉双引号
比如"abc","123"
之后将abc或123插入到对应的位置中,
要求2,这个过程也要用到main之外的 function

谢谢
0123456789ABCDEFGHIJ0123456789
--------------------------------------------------------
Command: insert 1 "XYZ"
--------------------------------------------------------
0XYZ123456789ABCDEFGHIJ0123456789
--------------------------------------------------------
Command: insert 100 "XXX"
---------------------------------------------------------
0XYZ123456789ABCDEFGHIJ0123456789XXX
当插入位置大于一共的个数时,就插在最后

题目取错了,不好意思
展开
 我来答
爱桔子人
2008-04-14 · TA获得超过113个赞
知道小有建树答主
回答量:376
采纳率:0%
帮助的人:230万
展开全部
#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");
}
}
wangshxiang
2008-04-14
知道答主
回答量:23
采纳率:0%
帮助的人:0
展开全部
自己写了个,不知道合题意不
#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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式