比如说要删除一个字符数组S中的第I个位子起的第M个的字符,可以这样吗
s[i]='\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); }