C语言 百炼成钢24
2016-06-19 14:33
471 查看
/* 题目60:从键盘中输入一个不超过40个字符的字符串, 再输入3个位数(每次删除一个字符),删除对应 位数的字符,然后输出删除指定字符后的字符串。 输入:hellokityManGood 3 6 9 helokityManGood heloktyManGood heloktyMnGood 输出:heloktyMnGood 要求1:编写业务接口并实现核心功能 70分 要求2:写出测试用例 30分 */ #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> //思路:在原来字符串上进行删除,需要将后面的所有字符都向前移动一位,感觉比较麻烦 //决定每次只删除一个字符 可以把这个字符以一个特殊代替,重新遍历字符,把除了这个字符外的字符写入新字符串 //删除指定字符 int RemoveStr(char *pin/*in*/,int index){ int ERRO_MSG = 0; if (pin==NULL) { ERRO_MSG = 1; printf("pin==NULL erro msg:%d\n", ERRO_MSG); return ERRO_MSG; } int i = 0,k=0; int numx = (int)strlen(pin); char buf[40] = { 0 }; for (i = 0; i < numx; i++) { if (index!=(i+1)) { buf[k++] = *(pin+i);//注意buf是按条件自增 } } //清空原始字符串 memset(pin, 0, sizeof(char)* 40); //拷贝新的字符串 strcpy(pin, buf); printf("新的字符串是%s\n", pin); return ERRO_MSG; } void main(){ char buf[40] = { 0 }; int num = 0; printf("请输入不超过40个字符的字符串!\n"); scanf("%s", buf); while (1){ printf("请输入一个数字\n"); scanf("%d",&num); RemoveStr(buf, num); } system("pause"); }
相关文章推荐
- C++一些特性第一节
- c++ 面向对象编程
- C语言指针拾遗
- c++类及其基础规则详解
- C++ 多态 polymorphic 编译时期多态
- C语言-位运算的应用
- C++课程小结 继承与派生
- 山东省第七届ACM大学生程序设计竞赛-Execution of Paladin(炉石传说-模拟)
- JNI之C语言(七)-- 其他
- 详细解析C语言中的sizeof
- JNI之C语言(六)-- 数组
- JNI之C语言(五)-- 指针
- JNI之C语言(四)-- 函数
- 两则C语言技巧
- JNI之C语言(三)-- 基本语法
- JNI之C语言(二)-- 基本类型
- JNI之C语言(一)--快速入门
- C语言中生产随机数 rand()函数
- C++的三大特性之一继承
- 第16周项目1--小玩文件(2)