| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 500 人关注过本帖
标题:[求助]
只看楼主 加入收藏
359951878
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-4-20
收藏
 问题点数:0 回复次数:5 
[求助]
请问哈儿,可以这样截断一个字符串吗
比如说要删除一个字符数组S中的第I个位子起的第M个的字符,可以这样吗
s[i]='\0';
如果比行的话,请各位大哥给我个完整的程序,小弟我好对照学习
谢拉哈
搜索更多相关主题的帖子: 字符串 大哥 
2005-04-28 23:33
musicml
Rank: 1
等 级:新手上路
帖 子:273
专家分:0
注 册:2005-4-2
收藏
得分:0 
第I个位子起的第M个的字符??
什么意思啊
说清楚点!

Every thing is possible.
2005-04-29 00:00
流浪魂
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2005-4-21
收藏
得分:0 
你这样好象只是把原来的字符换成了结束符

何谓菜鸟?,呵呵,就是会吃菜的鸟。
2005-04-29 19:19
musicml
Rank: 1
等 级:新手上路
帖 子:273
专家分:0
注 册:2005-4-2
收藏
得分:0 

//花了点时间,帮你做好了, //看看把,如有不懂的地方, //加我 `qq;417111349 //可以这样截断一个字符串吗 //比如说要删除一个字符数组S中的第I个位子起的第M个的字符, //可以这样吗 //s[i]='\0'; //如果比行的话,请各位大哥给我个完整的程序,小弟我好对照学习

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

#define MAXSTRINGSIZE 100

void delate(char arry[],int n,int begin,int num);

void delate(char arry[],int n,int begin,int num) { char * str; int i; str=(char *)malloc((n-begin-num+1)*sizeof(char)); if(!str) exit(1); for(i=begin+num-1;i<n;i++) { str[i-begin-num+1]=arry[i]; }

str[i-begin-num+1]='\0'; arry[begin+num-2]='\0'; strcat(arry,str); puts("the string after delating is as following:"); puts(arry); }

void main() { char string[MAXSTRINGSIZE]; int length; int begin; int num; puts("please enter the string :"); gets(string); length=strlen(string); do { printf("please enter the begning position(1~%d):\n",length); scanf("%d",&begin); fflush(stdin); }while(begin<1||begin>length); do { printf("please enter the delating position:(1~%d)\n",length-begin+1); scanf("%d",&num); fflush(stdin); }while(num<1||num>length-begin+1); delate(string,length,begin,num); }


Every thing is possible.
2005-04-30 03:00
牛虻
Rank: 1
等 级:新手上路
威 望:1
帖 子:472
专家分:0
注 册:2004-10-1
收藏
得分:0 
楼主如果没错的话题目应该是这样吧?:删除一个字符串中第i字符起后面的m个字符(包括第i个),楼主说的把第i个换成‘\0’不行,如果那m个后面还有字符呢?你这样做是把前i个字符留住,后面的都被删掉了

[此贴子已经被作者于2005-4-30 14:10:28编辑过]



土冒
2005-04-30 14:05
牛虻
Rank: 1
等 级:新手上路
威 望:1
帖 子:472
专家分:0
注 册:2004-10-1
收藏
得分:0 
这里给你主要的部分:
for(No=i;No&lt;strlen(s)-m;No++)
s[No]=s[No+m];
s[No+1]='\0';

土冒
2005-04-30 14:24
快速回复:[求助]
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022768 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved