C语言 编写一个函数void f(char str[80])要求将字符串中所有数字字符前加以个‘’,例如输入:g5f78t5f. 输出 g5f78t*5f
时间: 2024-06-09 15:05:27 浏览: 42
下面是实现该功能的 C 代码:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void f(char str[80]) {
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (isdigit(str[i])) {
// 将数字字符前加上 '*'
memmove(str + i + 1, str + i, len - i);
str[i] = '*';
len++;
i++;
}
}
}
int main() {
char str[80];
printf("请输入字符串:");
scanf("%s", str);
f(str);
printf("处理后的字符串为:%s\n", str);
return 0;
}
```
函数 `f` 中使用 `isdigit` 函数判断字符是否为数字字符,如果是,则将其前面加上一个 `'*'`。为了实现这个功能,我们需要使用 `memmove` 函数将数字字符后面的字符都往后移动一位。最后,函数 `f` 处理后的字符串会直接保存在原参数 `str` 中。
在主函数中,我们通过 `scanf` 函数读入字符串,然后调用 `f` 函数进行处理,最后输出处理后的字符串。
相关问题
C语言 void f(char str[80])要求将字符串中所有数字字符前加以个‘*’,例如输入:g5f78t5f. 输出 g*5f*7*8t*5f
可以使用循环遍历字符串中的每个字符,判断是否为数字字符,如果是,则在该字符前加上一个'*'。可以使用C语言中的isdigit()函数来判断一个字符是否为数字字符。
具体实现代码如下:
```c
#include <stdio.h>
#include <ctype.h>
void add_star(char str[80]) {
int i, j;
for (i = 0, j = 0; str[i] != '\0'; i++, j++) {
if (isdigit(str[i])) {
putchar('*');
j++;
}
putchar(str[i]);
}
}
int main() {
char str[80];
printf("请输入字符串:");
scanf("%s", str);
printf("处理后的字符串为:");
add_star(str);
return 0;
}
```
输入样例:
```
g5f78t5f
```
输出样例:
```
g*5f*7*8t*5f
```
用C语言编写一个函数void strlwr(char str[]),在键盘上输入,实现字符串小写变大写的功能
好的,这是一个技术问题,我可以和您聊聊。以下是 C 语言编写的 strlwr 函数的示例代码:
```
#include <stdio.h>
#include <ctype.h>
void strlwr(char str[]) {
int i = 0;
while (str[i]) {
str[i] = toupper(str[i]);
i++;
}
}
int main() {
char str[100];
printf("请输入字符串:");
gets(str);
strlwr(str);
printf("转换后的字符串为:%s", str);
return 0;
}
```
这个程序中,我们首先定义了一个 `strlwr` 函数,在该函数中,我们通过循环遍历字符串中的每个字符,然后使用 `toupper` 函数将它们转换为大写字符。最后,在主函数中,我们使用 `gets` 函数从键盘获取用户输入的字符串,并调用 `strlwr` 函数将其转换为大写字符。
希望这个程序能对您有所帮助。如果您有其他问题,也可以随时问我。
阅读全文