c语言 输入一个字符,若其在字符串中,则删除它
时间: 2024-03-12 07:43:26 浏览: 32
好的,可以使用C语言的字符串操作函数来实现该功能。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
char c;
printf("请输入一个字符串:");
scanf("%s", str);
printf("请输入一个字符:");
scanf(" %c", &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';
printf("删除后的字符串为:%s\n", str);
return 0;
}
```
在上述代码中,我们首先通过 `scanf()` 函数获取用户输入的字符串和字符。然后使用 `strlen()` 函数获取字符串的长度,进而遍历整个字符串,如果字符不等于输入的字符,则将其保存到新的字符串中,最后再在新的字符串末尾添加结束符 `\0`。
需要注意的是,在使用 `scanf()` 函数获取字符时,我们需要在前面添加一个空格,以便清除输入缓冲区中的换行符。否则,可能会出现读取错误的问题。
相关问题
C语言在一个字符串中删除另一个字符串
可以使用C语言的字符串操作函数来实现删除一个字符串中的另一个字符串。
以下是一个示例代码:
```
#include <stdio.h>
#include <string.h>
void removeSubstring(char *s, const char *t) {
int i, j, k, n = strlen(t);
for (i = j = 0; s[i] != '\0'; i++) {
if (strncmp(&s[i], t, n) == 0) {
i += n;
} else {
s[j++] = s[i];
}
}
s[j] = '\0';
}
int main() {
char s[100], t[100];
printf("Enter a string: ");
fgets(s, 100, stdin);
printf("Enter a substring to remove: ");
fgets(t, 100, stdin);
removeSubstring(s, t);
printf("Result: %s\n", s);
return 0;
}
```
在这个例子中,`removeSubstring` 函数接受两个字符串 `s` 和 `t` 作为参数。它在 `s` 中查找并删除所有出现的 `t` 子字符串。`strncmp` 函数用于比较字符串,`i` 和 `j` 分别表示正在读取的字符位置和写入的字符位置。如果找到了 `t` 子字符串,则将 `i` 移动到子字符串的末尾,从而跳过它。
在主函数中,用户被提示输入一个字符串和要删除的子字符串。然后调用 `removeSubstring` 函数并打印结果。
注意:在这个例子中,我们假设输入的字符串不包含任何换行符。如果输入字符串可能包含换行符,则需要进行额外的处理。
C语言输入一个字符串,定位某个字符在字符串中的位置
你可以使用C语言中的字符串函数`strchr()`来定位某个字符在字符串中的位置。该函数的原型如下:
```
char *strchr(const char *str, int c);
```
其中,`str`为要搜索的字符串,`c`为要查找的字符。函数返回一个指向被查找字符第一次出现的位置的指针,如果未找到该字符,则返回`NULL`。
以下是一个示例程序:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
char ch;
char *p;
printf("请输入一个字符串:");
gets(str);
printf("请输入要查找的字符:");
scanf("%c", &ch);
p = strchr(str, ch);
if (p != NULL) {
printf("字符 %c 在字符串中的位置为:%d\n", ch, p - str);
} else {
printf("未找到该字符!\n");
}
return 0;
}
```
注意:以上示例代码中使用了不安全的`gets()`函数读取字符串,实际应用中应使用更为安全的函数替代,例如`fgets()`。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)