c语言编写函数,从给定字符串中删除指定的字符。 函数接口定义: void del_char(char str[],char ch); 裁判测试程序样例: #include <stdio.h> #include <string.h> void del_char(char str[],char ch); int main() { char c,s[81]; gets(s); c=getchar(); del_char(s,c); puts(s); } /* 请在这里填写答案 */ 输入样例: student t 输出样例: suden
时间: 2024-03-27 20:40:13 浏览: 83
以下是函数实现代码:
```c
void del_char(char str[], char ch) {
int len = strlen(str);
int i, j;
for (i = 0, j = 0; i < len; i++) {
if (str[i] != ch) {
str[j++] = str[i];
}
}
str[j] = '\0'; // 字符串结尾
}
```
函数的思路是遍历给定字符串 `str`,将不等于指定字符 `ch` 的字符放到字符串的前面,构成一个新的字符串。用两个指针 `i` 和 `j` 分别指向原字符串和新字符串。当 `str[i]` 不等于 `ch` 时,将其复制到 `str[j]` 中,并将 `j` 后移一位,否则跳过该字符。最后将新字符串的结尾置为 `\0`,即可得到删除指定字符后的字符串。
相关问题
c语言编写函数,对于给定的字符串,用指定字符替换该字符串中的数字字符。 函数接口定义: void replace_num ( char s[], char c ); 用指定字符 c 替换该字符串 s 中的数字字符。 裁判测试程序样例: #include <stdio.h> #include <string.h> void replace_num ( char s[], char c ); int main() { char str[81],ch; gets (str); ch=getchar(); replace_num(str,ch); puts(str); } /* 请在这里填写答案 */ 输入样例: abc0AB9 $ 输出样例: abc$AB$
以下是函数实现代码:
```c
void replace_num(char s[], char c) {
int len = strlen(s);
for (int i = 0; i < len; i++) {
if (s[i] >= '0' && s[i] <= '9') { // 如果该字符是数字字符
s[i] = c; // 用指定字符替换
}
}
}
```
函数的思路是遍历给定字符串 `s`,判断每个字符是否为数字字符。如果是数字字符,则将其替换为指定字符 `c`。注意,可以使用 ASCII 编码判断一个字符是否为数字字符。当一个字符 `ch` 满足 `'0' <= ch <= '9'` 时,即是一个数字字符。
实现一个函数,将两个字符串连接起来。 函数接口定义: char *str_cat( char *s, char *t ); 函数str_cat应将字符串t复制到字符串s的末端,并且返回字符串s的首地址,C语言具体实现
下面是一个简单的 C 语言实现:
```c
#include <stdio.h>
#include <string.h>
char *str_cat(char *s, char *t) {
strcat(s, t);
return s;
}
int main() {
char s[100] = "Hello, ";
char t[] = "world!";
printf("%s\n", str_cat(s, t)); // 输出:Hello, world!
return 0;
}
```
在上面的代码中,我们定义了一个 `str_cat` 函数,它接受两个参数 `s` 和 `t`,分别表示要连接的两个字符串。函数内部使用了 C 语言标准库中的 `strcat` 函数将 `t` 连接到 `s` 的末尾,然后返回 `s` 的指针,即连接后的字符串。
在 `main` 函数中,我们定义了两个字符串 `s` 和 `t`,然后调用 `str_cat` 函数将它们连接起来,并输出结果。
阅读全文