C语言fun函数实现将s串中的字母删除,形成新的串放入s地址,在主函数中键盘输入一个不超过30个字符的串并调用fun函数,输出结果
时间: 2023-12-10 21:39:20 浏览: 31
下面是C语言实现的代码:
```c
#include <stdio.h>
#include <string.h>
void fun(char *s)
{
int len = strlen(s);
int k = 0;
for (int i = 0; i < len; i++) {
if (s[i] >= 'a' && s[i] <= 'z') {
s[k++] = s[i];
}
}
s[k] = '\0';
}
int main()
{
char s[31];
printf("请输入不超过30个字符的串:\n");
scanf("%s", s);
fun(s);
printf("删除字母后的新串为:%s\n", s);
return 0;
}
```
首先在 `fun` 函数中,我们使用了 `strlen` 函数来获取字符串的长度,然后使用一个变量 `k` 来记录新串的长度。接着遍历原串,如果当前字符是字母,则将其加入到新串中。最后将新串的末尾赋值为 `'\0'`。
在主函数中,我们先读入一个字符串,然后调用 `fun` 函数来进行删除字母操作,最后输出新串即可。注意,在 `scanf` 函数中我们使用 `%s` 格式来读入字符串,因为这里假设输入的字符串不包含空格。如果需要支持包含空格的输入,可以使用 `fgets` 函数。
相关问题
C语言自定义函数在主函数中输入一个字符串,调用函数将字符串中的大写字母改为小写字母后输出
好的,这是一个关于C语言函数的问题。可以使用字符数组和循环语句来实现。下面是代码示例:
```c
#include <stdio.h>
#include <ctype.h>
void toLower(char *str) {
int i = 0;
while (str[i]) {
str[i] = tolower(str[i]);
i++;
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
toLower(str);
printf("转换后的字符串为:%s\n", str);
return 0;
}
```
这个程序定义了一个 `toLower` 函数,它接受一个指向字符数组的指针作为参数。在函数内部,它遍历字符串并将其中的大写字母转换为小写字母。在主函数中,程序首先从用户处获取一个输入字符串,然后将其传递给 `toLower` 函数进行处理,并打印出转换后的字符串。
注意,这个程序只能处理英文字符。如果输入的字符串中包含非英文字符,程序可能会出现不可预知的行为。
C语言编写一个函数,将字符串中的小写字母转换为大写字母,主函数输入字符串并输出结果
下面是一个将字符串中的小写字母转换为大写字母的函数实现:
```c
#include <stdio.h>
#include <ctype.h>
void to_uppercase(char* str) {
int i = 0;
while (str[i] != '\0') {
if (islower(str[i])) {
str[i] = toupper(str[i]);
}
i++;
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
to_uppercase(str);
printf("转换后的字符串为:%s\n", str);
return 0;
}
```
该函数通过遍历字符串中的每个字符,如果是小写字母,就将其转换为大写字母。主函数中,首先输入一个字符串,然后调用 `to_uppercase` 函数将其中的小写字母转换为大写字母,并输出转换后的结果。