请教高手一个关于字符串分割 的问题!,将一个字符串一分为二!!

我想用C实现这样一个功能将一个字符串的前四个字符直接删除该字符串的首地址为第五个字符,就相当于将一个字符串,按照长度一分为二,请高手指点啊... 我想用C 实现这样一个功能 将一个字符串的前四个字符直接删除 该字符串的首地址为 第五个字符 ,就相当于将一个字符串,按照长度一分为二,请高手指点啊 展开
 我来答
cang_feng
2012-08-20 · TA获得超过296个赞
知道答主
回答量:157
采纳率:100%
帮助的人:206万
展开全部
1、如果仅仅是拷贝字符串中的值:

strncpy(str2, str1+n, m); //拷贝str1中第n个字符开始的前m个字符,到str2中

2、截断原来的字符串,

//原字符串str1
char *str1 = (char *)calloc(11);
strcpy(str1,"Helloworld");

//从位置n,截断字符串str1
char *str2 = str1 + n;
str1[n-1]='\0';
free(str1); //释放前n个字符的内存

---------------------------------------
追问
可能我没表达清楚,是这个意思:比如str[12]="ABCDEFGDFGR";最终要将str[12]="EFGDFGRQWER";就是将前四个删掉,尾部还要添加四个字符,实现的是一个循环,就好比一间屋子,大小是一定的,前面出去一个,后面又进来一个,这样里面的人数是一定的!兄弟,帮个忙,万分感谢啦!
追答
char str[11] = "abcdefghij";
25 char ch[5] = {'\0'};
26 puts(str);
27 while(1){
28 //read 4 characters
29 printf("输入4个字符\n");
30 scanf("%s",ch);
31 int i=0;
//字符串移位

32 while(str[i+4] != '\0') {
33 str[i] = str[i+4];
34 i++;
35 }
36 str[i] = '\0';
//连接新字符串

37 strncat(str, ch, 4);
38 fprintf(stdout,"new string:%s\n",str);
39 }
wn15239159680
2012-08-20
知道答主
回答量:6
采纳率:0%
帮助的人:3.5万
展开全部
运用指针 逐个找地址 直到需要分割的地方 然后将该处地址赋给一个数组 这样得到了需要的字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zj286250345
2012-08-20 · 超过14用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:47万
展开全部
用指针找到第四个字符,然后把第四个字符赋值为空,指针后移一位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3d9c61e
2012-08-21
知道答主
回答量:25
采纳率:0%
帮助的人:9万
展开全部
用队列
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式