c语言,编写一个函数,求一个字符串的长度。在main函数中用gets()函数输入字符串,并输出其长度。
时间: 2024-01-09 15:53:49 浏览: 186
可以使用C语言中的 `strlen()` 函数来求一个字符串的长度,其函数定义在 `string.h` 头文件中。下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
printf("请输入一个字符串:");
gets(str);
int len = strlen(str);
printf("字符串的长度为:%d\n", len);
return 0;
}
```
注意,使用 `gets()` 函数存在一定的安全风险,因为它无法限制用户输入的字符个数,容易造成缓冲区溢出。建议使用更安全的输入方式,例如 `fgets()` 函数。
相关问题
输入一个字符串,输出该字符串中出现次数最多的字符及其出现次数。c语言
下面是一个简单的 C 语言程序,可以实现该功能:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
int freq[256] = {0}; // 初始化所有字符频率为 0
printf("请输入一个字符串:");
fgets(str, MAX_LEN, stdin);
int len = strlen(str);
// 统计每个字符的出现次数
for (int i = 0; i < len - 1; i++) {
freq[str[i]]++;
}
int max_freq = 0;
char max_char;
// 找出出现次数最多的字符
for (int i = 0; i < 256; i++) {
if (freq[i] > max_freq) {
max_freq = freq[i];
max_char = i;
}
}
printf("出现次数最多的字符是 %c,出现了 %d 次。\n", max_char, max_freq);
return 0;
}
```
程序先让用户输入一个字符串,然后用一个数组 `freq` 统计每个字符的出现次数。最后遍历一遍 `freq` 数组,找出出现次数最多的字符。注意,程序中用 `fgets()` 函数读入字符串,而不是 `gets()` 函数,以避免缓冲区溢出的问题。
在c语言中用gets函数输入一个字符串保存在str1数组,将str1去除其中空格字符后保存到str2数组,然后输出两个字符串,要求将去空格转存部分代码写成自定义函数removesp
以下是实现要求的代码:
```c
#include <stdio.h>
#include <string.h>
void removesp(char str1[], char str2[]) {
int len1 = strlen(str1);
int j = 0;
for (int i = 0; i < len1; i++) {
if (str1[i] != ' ') {
str2[j++] = str1[i];
}
}
str2[j] = '\0';
}
int main() {
char str1[100], str2[100];
printf("请输入一个字符串:");
gets(str1);
removesp(str1, str2);
printf("原字符串为:%s\n", str1);
printf("去除空格后的字符串为:%s\n", str2);
return 0;
}
```
函数`removesp`将输入的字符串`str1`中的空格字符去掉后存入`str2`中,传入的两个数组都应该是字符数组,函数不需要返回值。在函数中,我们使用两个循环变量`i`和`j`,分别遍历`str1`和`str2`,当`str1[i]`不是空格字符时,将其存入`str2[j]`中,同时将`j`自增1。最后在`str2[j]`处添加上字符串结束符`\0`。
阅读全文
相关推荐















