用C语言练习指针与字符串:在一行字符串中删去指定的字符。例如,要求在一行文 字:“I have 150 Yuan!!”中删去字符“0”,使其变为“I have 15 Yuan!!”
时间: 2024-03-25 12:36:01 浏览: 14
好的,以下是一个实现此功能的 C 语言函数:
```c
void removeChar(char *str, char c) {
int len = strlen(str);
int i, j;
for (i = 0, j = 0; i < len; i++) {
if (str[i] != c) {
str[j++] = str[i];
}
}
str[j] = '\0';
}
```
这个函数的第一个参数是一个指向字符串的指针,第二个参数是需要删除的字符。函数会遍历整个字符串,将不是指定字符的字符移动到字符串的前面,最后在新字符串的结尾处添加一个空字符。这样就实现了删除指定字符的功能。
示例使用:
```c
int main() {
char str[] = "I have 150 Yuan!!";
char c = '0';
removeChar(str, c);
printf("%s\n", str); // 输出 "I have 15 Yuan!!"
return 0;
}
```
相关问题
在c语言中使用指针将字符串中的指定字符用另一个字符替换。
在 C 语言中,我们可以使用指针来将字符串中的指定字符用另一个字符替换。以下是示例代码:
```c
#include <stdio.h>
void replace_char(char* str, char old_char, char new_char) {
while (*str != '\0') {
if (*str == old_char) {
*str = new_char;
}
str++;
}
}
int main() {
char str[] = "hello, world!";
printf("before replace: %s\n", str);
replace_char(str, 'o', 'x');
printf("after replace: %s\n", str);
return 0;
}
```
在上面的代码中,我们定义了一个函数 `replace_char`,它接受三个参数:一个指向字符串的指针 `str`,要替换的旧字符 `old_char` 和新字符 `new_char`。该函数使用 `while` 循环遍历整个字符串,如果找到了旧字符,就用新字符替换它。
在 `main` 函数中,我们定义了一个字符串 `str`,并将其传递给 `replace_char` 函数进行字符替换。最后,我们使用 `printf` 函数输出替换后的字符串。
运行上面的代码,输出结果如下:
```
before replace: hello, world!
after replace: hellx, wxrld!
```
可以看到,字符 `o` 已经被字符 `x` 替换了。
用c语言:用指针的方法编写函数实现,计算一个字符在一个字符串中出现的次数
以下是用指针的方法编写函数实现,计算一个字符在一个字符串中出现的次数的C语言代码:
```c
#include <stdio.h>
int count_char(char *str, char ch) {
int count = 0;
while (*str != '\0') {
if (*str == ch) {
count++;
}
str++;
}
return count;
}
int main() {
char str[100];
char ch;
printf("Enter a string: ");
gets(str);
printf("Enter a character to count: ");
scanf("%c", &ch);
int count = count_char(str, ch);
printf("'%c' appears %d times in '%s'\n", ch, count, str);
return 0;
}
```
首先定义了一个`count_char`函数,它接受一个字符串指针`str`和一个字符`ch`作为参数。然后,使用一个`while`循环遍历字符串中的每个字符,如果当前字符等于`ch`,则将计数器`count`增加1。最后,返回计数器的值。
在`main`函数中,首先使用`gets`函数获取用户输入的字符串,并使用`scanf`函数获取用户输入的字符。然后,调用`count_char`函数计算字符出现的次数,并打印结果。
注意,这种实现方式假设输入的字符串中不含有空格等分隔符,否则只会计算到第一个分隔符为止。