用c语言编写一个函数,删除字符串s中的特殊字符ch
时间: 2024-05-07 16:17:10 浏览: 107
好的,以下是用 C 语言编写一个函数,删除字符串 s 中的特殊字符 ch 的代码:
```
#include <stdio.h>
#include <string.h>
void remove_char(char *s, char ch) {
int i, j;
int n = strlen(s);
for (i = 0, j = 0; i < n; i++) {
if (s[i] != ch) {
s[j] = s[i];
j++;
}
}
s[j] = '\0';
}
int main() {
char s[100], ch;
printf("请输入一个字符串: ");
scanf("%s", s);
getchar(); // 消耗掉回车符
printf("请输入要删除的特殊字符: ");
scanf("%c", &ch);
remove_char(s, ch);
printf("删除特殊字符后的字符串为: %s\n", s);
return 0;
}
```
不要忘记在调用 scanf 函数后,消耗掉输入的回车符,否则可能导致后续 fgets 函数和 gets 函数等读取空白行的问题。
相关问题
用c语言编写一个函数insertChar,完成如下功能:给定某个字符ch,在字符串s中所有的ch字符后面插入*字符,并返回该新字符串。
可以使用以下代码实现:
```c
#include <stdio.h>
#include <string.h>
char* insertChar(char* s, char ch) {
int len = strlen(s);
int count = 0;
for (int i = 0; i < len; i++) {
if (s[i] == ch) {
count++;
}
}
int newLen = len + count;
char* newStr = (char*) malloc(sizeof(char) * (newLen + 1));
int j = 0;
for (int i = 0; i < len; i++) {
newStr[j++] = s[i];
if (s[i] == ch) {
newStr[j++] = '*';
}
}
newStr[j] = '\0';
return newStr;
}
int main() {
char s[] = "hello world";
char* newStr = insertChar(s, 'l');
printf("%s\n", newStr);
free(newStr);
return 0;
}
```
首先,我们需要计算在字符串s中字符ch的出现次数,以此来确定新字符串的长度。然后,我们可以使用一个循环来遍历原字符串,将每个字符复制到新字符串中,并在遇到字符ch时插入一个*字符。最后,我们需要在新字符串的末尾添加一个空字符来表示字符串的结束。注意,在函数中我们使用了动态内存分配来分配新字符串的内存,因此在使用完毕后需要手动释放内存。
删除字符:输入一个字符串,再输入一个字符 ch,将字符串中所有的ch 字符删除后输出该字符串。要求定义和调用函数 delchar(s,c),该函数将字符串s中出现的所有字符删除。用c语言编写相应程序。
在C语言中,你可以通过遍历字符串并创建一个新的字符串来实现这个功能,新字符串只包含原字符串中不等于`ch`的字符。下面是一个简单的实现:
```c
#include <stdio.h>
#include <string.h>
// 定义函数delchar,接收两个参数:字符串指针和字符c
void delchar(char* s, char c) {
int i, j = 0;
for (i = 0; s[i] != '\0'; i++) { // 遍历整个字符串
if (s[i] != c) { // 如果当前字符不是我们要删除的字符
s[j++] = s[i]; // 将它添加到新的字符串中
}
}
s[j] = '\0'; // 添加结束标志
}
int main() {
char str[100];
char ch;
printf("请输入原始字符串: ");
fgets(str, sizeof(str), stdin); // 从用户输入读取字符串,包括换行符
str[strlen(str) - 1] = '\0'; // 去掉最后的换行符
printf("请输入要删除的字符: ");
scanf("%c", &ch);
delchar(str, ch);
printf("删除指定字符后的字符串: %s\n", str);
return 0;
}
```
在这个程序中,`delchar`函数接收一个字符串`s`和一个字符`c`作为输入,然后通过遍历`s`并仅保留非`c`字符的方式来构建新的字符串。`main`函数负责获取用户的输入,并调用`delchar`函数。
阅读全文