案例描述
从键盘输入一个字符串,输入要删除的字符串起始位置及长度,然后输出删除后的字符串。
案例分析
若要删除字符串中的子串,需要使用该子串后的字符从要删除的地方开始,逐一往前移动覆盖待删除字符。
之前学习过的printf()函数和scanf()函数,他们分别用于向控制台中输出内容和从控制台上接受用户的输入。C语言还提供了针对字符串读取和输出的函数,即puts()函数和gets()函数。使用这两个专用函数能更顺利的完成此案例
必备知识
1,gets()函数
gets()函数用于从控制台读入用户输入的字符串,其函数原形如下:
char* gets(char* str);
gets()函数接收一个字符指针作为参数,该指针指向已经分配好空间的一个字符数组。当调用gets()函数时,将读到的字符串赋值给该字符数组。
读到的字符串会以指针形式返回。
2,puts()函数
此函数用于向控制台输出一整行字符,其函数原形如下:
int puts(const char* str)
可以看出puts()函数接收的参数是一个字符串指针,该指针指向要输出的字符串,并且会自动在字符串末尾追加换行符‘\n’。如果调用成功则返回一个int类型的整数,否则则返回EOF。
案例实现
1,案例设计
从指定位置开始,删除len个字符,其原理为:使用待删除字符串之后的所有字符,从指定位置开始逐一替换字符串中的字符,当替换完成之后,将被替换的最后的字符的存储单元置为’\0’。
示例如下:<