如何将String中指定位置的字符取出,删除

如题所述

#include char *delete(char *p, int i);char a;int main(){char a[40], *b;int i;printf("请输入字符串\n");scanf("%s", a);printf("请输入你要删除第几个字符\n");scanf("%d", &i);b = delete( a, i);if(b == NULL){printf(" 删除失败\n");}else{printf("删除的字符是 %c \n", *b);}printf("%s\n", a);//输出删除后的字符串return 0;}char *delete(char *p, int i){int lengh = 0, j = 0;char * b = p;while(*p != '\0')//求出字符串的长度,lengh中存放字符串的长度用于比较{p++;lengh++;}p = b;//因为p移动到最后的位置,将其重新定位到开始位置if(i > lengh || i < 1)//判断i是否大于零并小于字符串的长度,如果不合理就返回{return NULL;}a = *( p + i -1);//用全局变量保存要删除的字符for(j = i - 1; j < lengh; ++j)//调整字符串,让后面的字母依次替换前面的,包括'\0';{*(p + j) = *(p + j + 1);}return &a;// 返回a的地址}
温馨提示:答案为网友推荐,仅供参考