C语言编程,编写函数去除字符串 S 从第 k 个字符开始的 n 个字符。

【指针作为函数参数、指针访问字符数组元素】编写函数去除字符串 S 从
第 k 个字符开始的 n 个字符。函数原型为 delchar(char *p, int k, int n);

所谓从k个字符开始删除n个字符,就是将k+n个以后的字符网前移动覆盖掉这n个字符即可,如果考虑得细致些,可以增加判断原字符串的第k个字符是否有足够的n个字符可删,省得出错。

#include<stdio.h>

void delchar(char *p,int k,int n)
{ int nn,nnn;
  char *q;
    k--;
  nn=0; q=p; while ( *q ) { q++; nn++; }
    nnn=nn-k-n; if ( nnn<0 ) return;
    p+=k; q=p; q+=n; while ( *q ) { (*p)=(*q); p++; q++; }
    (*p)=0;
}
void main()
{  
    int i;
    char a[20]={ "abcdefghijk" };
    printf("%s\n",a);
    delchar(a,5,3);

    printf("%s\n",a);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-15
void delchar(char *p, int k, int n) {
    char *s;

     p = p + k;
     s = p + n;
     while ((*p = *s) != 0) ;
}

第2个回答  2014-12-15
delchar(char *p, int k, int n)
{
memset( p+k, 0x00, n);
char *pChar = (char)malloc( strlen(p+k+n));
memcpy( pChar, p+k+n, strlen(p+k+n));
memcpy( p+k, pChar, strlen(p+k+n));
free(pChar);
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网