编写C语言程序:利用指针实现只含有字母和*号的字符串处理。将字符串尾部连续的*号全部删除,使用子函数void strdel(char *s)
时间: 2024-05-07 18:17:15 浏览: 96
这是一个比较基础的 C 语言编程问题。首先我们需要遍历字符串,找到最后一个不是*的字符的位置,然后将该位置之后的所有字符都替换为'\0'。
接下来是具体的代码实现:
```c
#include <stdio.h>
#include <string.h>
void strdel(char *s) {
int len = strlen(s);
int i, j;
for (i = len - 1; i >= 0; i--) {
if (s[i] != '*') {
break;
}
}
if (i < len - 1) {
s[i+1] = '\0';
}
}
int main() {
char s[100];
printf("请输入字符串:\n");
scanf("%s", s);
strdel(s);
printf("处理后的字符串为: %s\n", s);
return 0;
}
```
上面的代码定义了一个名为`strdel`的函数,该函数接受一个指向字符串的指针作为参数。函数内部通过遍历字符串找到最后一个不是*的字符,并将其之后的所有字符都替换为'\0'。
然后我们在`main`函数中调用`strdel`函数,将用户输入的字符串作为参数传递给它。最后打印出处理后的字符串即可。
需要注意的是,这里的字符串处理是在原有字符串上直接进行的,因此对原有字符串的修改是永久性的。如果需要保留原有字符串的话,可以先将其复制到另一个变量中再进行修改。
阅读全文