(程序设计)编写一个求字符串长度的函数slen(参数用指针),在主函数中输入字符串,调用slen,并输出字符串的长度
时间: 2023-11-27 13:49:18 浏览: 50
下面是一个简单的求字符串长度的函数示例:
```c
#include <stdio.h>
int slen(char *s) {
int i = 0;
while (s[i] != '\0') {
i++;
}
return i;
}
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
int len = slen(str);
printf("字符串的长度为:%d\n", len);
return 0;
}
```
首先,我们定义了一个名为 `slen` 的函数,该函数接受一个指向字符串的指针 `s`,并返回字符串的长度。该函数使用一个循环来遍历字符串中的每个字符,直到遇到字符串的结尾标记 `\0`。在循环中,我们使用一个计数器 `i` 来记录遍历的字符数,最终返回 `i` 即可。
在 `main` 函数中,我们定义了一个 char 类型的数组 `str`,用于存储输入的字符串。然后,我们使用 `scanf` 函数从控制台读取输入的字符串。接下来,我们调用 `slen` 函数计算字符串的长度,并将其存储在变量 `len` 中。最后,我们使用 `printf` 函数输出字符串的长度。
相关问题
c语言 写一个函数int slen(char *s),返回值为字符串s的长度。要求在主函数中输入一个长度不大于20的字符串,调用函数slen,输出字符串对应的长度。 输入: hello world 输出: 11(空格算作有效字符)
这是一个比较简单的字符串操作题,只需要遍历字符串,记录字符个数即可。以下是对应的函数实现:
```c
int slen(char *s) {
int len = 0;
while (*s != '\0') {
len++;
s++;
}
return len;
}
```
使用时,先读入字符串,然后调用该函数获取长度,最后输出结果:
```c
int main() {
char str[21];
scanf("%s", str);
printf("%d\n", slen(str));
return 0;
}
```
希望能够对你有所帮助!
用c语言编写程序,从键盘输入2个字 符串,计算字符串 str1 中字符串 str2 出现的次数。要求:不使用 字符串比较库函数,直接使用指针进行字符比较。
可以使用字符串匹配算法来实现这个问题,比如KMP算法。
下面是使用KMP算法的C语言实现代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void get_next(char *p, int *next) {
int i = 0, j = -1;
next[0] = -1;
while (p[i] != '\0') {
if (j == -1 || p[i] == p[j]) {
i++;
j++;
next[i] = j;
} else {
j = next[j];
}
}
}
int kmp(char *s, char *p) {
int slen = strlen(s);
int plen = strlen(p);
int i = 0, j = 0;
int *next = (int*)malloc(sizeof(int) * plen);
get_next(p, next);
while (i < slen && j < plen) {
if (j == -1 || s[i] == p[j]) {
i++;
j++;
} else {
j = next[j];
}
}
free(next);
if (j == plen) {
return i - j;
} else {
return -1;
}
}
int main() {
char str1[100], str2[100];
printf("请输入字符串 str1:");
scanf("%s", str1);
printf("请输入字符串 str2:");
scanf("%s", str2);
int count = 0;
int pos = kmp(str1, str2);
while (pos != -1) {
count++;
pos = kmp(str1 + pos + 1, str2);
}
printf("字符串 str2 在字符串 str1 中出现了 %d 次。\n", count);
return 0;
}
```
这段代码首先定义了两个字符串 `str1` 和 `str2`,然后读入这两个字符串。接着使用KMP算法查找字符串 `str2` 在字符串 `str1` 中出现的位置,如果找到了,就将计数器加一,并继续查找下一个位置。最后输出计数器的值,即为字符串 `str2` 在字符串 `str1` 中出现的次数。