题要求实现一个删除字符串中的指定字符的简单函数。\n\n函数接口定义:\nvoid delchar( char *str, char c );\n其中char *str是传入的字符串,c是待删除的字符。函数d
时间: 2023-04-17 13:02:05 浏览: 129
efinition:
void delchar(char *str, char c);
实现思路:
1. 定义两个指针,一个指向原字符串的头部,一个指向新字符串的头部。
2. 遍历原字符串,如果当前字符不是待删除字符,就将其复制到新字符串中。
3. 最后将新字符串的结尾标志'\'添加到新字符串的末尾。
4. 将新字符串复制回原字符串。
代码实现:
void delchar(char *str, char c) {
char *p = str;
char *q = str;
while (*p != '\') {
if (*p != c) {
*q = *p;
q++;
}
p++;
}
*q = '\';
strcpy(str, q);
}
相关问题
例题11-8 字符定位 分数 15 作者 张泳 单位 浙大城市学院 输入一个字符串和一个字符,如果该字符在字符串中,就从该字符首次出现的位置开始输出字符串中的字符。本题要求编写函数match(s, ch),在字符串s中查找字符ch,如果找到,返回第一次找到的该字符在字符串中的位置(地址);否则,返回空指针NULL。 函数接口定义: char * match(char *s, char ch); 其中s是字符串首地址,ch是要查找的字符。 裁判测试程序样例: #include <stdio.h> char *match(char *s, char ch); /* 函数声明 */ int main(void ) { char ch, str[80], *p = NULL; scanf("%s", str); getchar(); ch = getchar(); if((p = match(str, ch)) != NULL) printf("%s\n", p); else printf("Not Found\n"); return 0; } /* 请在这里填写答案 */ 输入样例: program g 输出样例: gram
这道题需要遍历字符串,查找字符ch是否在字符串中,并返回第一次出现的位置。
函数实现如下:
```c
char* match(char* s, char ch) {
while (*s != '\0') { // 遍历字符串
if (*s == ch) { // 如果找到了字符ch
return s; // 返回该字符在字符串中的位置
}
s++; // 继续遍历字符串
}
return NULL; // 没有找到返回空指针
}
```
完整代码如下:
```c
#include <stdio.h>
char* match(char* s, char ch); // 函数声明
int main(void) {
char ch, str[80], *p = NULL;
scanf("%s", str);
getchar();
ch = getchar();
if ((p = match(str, ch)) != NULL)
printf("%s\n", p);
else
printf("Not Found\n");
return 0;
}
char* match(char* s, char ch) {
while (*s != '\0') { // 遍历字符串
if (*s == ch) { // 如果找到了字符ch
return s; // 返回该字符在字符串中的位置
}
s++; // 继续遍历字符串
}
return NULL; // 没有找到返回空指针
}
```
用C语言编写一函数删除字符串中指定的字符,函数的原型为: void strdelch( char *str, char c ),并制作流程
好的,下面是实现函数的代码和流程图。
```c
#include <stdio.h>
#include <string.h>
void strdelch(char *str, char c) {
int i, j;
for (i = j = 0; str[i] != '\0'; i++) {
if (str[i] != c) {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
char str[100];
char c;
printf("请输入一个字符串:");
scanf("%s", str);
getchar(); // 读取多余的回车符
printf("请输入要删除的字符:");
scanf("%c", &c);
strdelch(str, c);
printf("删除指定字符后的字符串为:%s\n", str);
return 0;
}
```
流程图如下:
![strdelch函数流程图](https://i.imgur.com/3rS6Q0u.png)
希望对您有所帮助!
阅读全文