编写自定义函数返回一个字符串的字符个数,不包含'\0'。在主函数中输入若干字符串,利用自定义函数,输出它们的长度 c语言实现
时间: 2024-03-24 18:41:33 浏览: 26
以下是实现代码:
```c
#include <stdio.h>
int str_length(char *str) {
int len = 0;
while (*str != '\0') {
len++;
str++;
}
return len;
}
int main() {
char str[100];
while (scanf("%s", str) != EOF) {
int len = str_length(str);
printf("字符串%s的长度为%d\n", str, len);
}
return 0;
}
```
解释一下代码:首先定义了一个自定义函数 `str_length`,该函数接受一个字符串指针作为参数,返回该字符串的字符个数(不包括字符串末尾的 '\0')。在函数内部,使用了一个 while 循环来遍历字符串,每遇到一个非 '\0' 的字符,就将计数器 len 加 1。最后返回 len 即可。
在主函数中,使用了一个 while 循环来不断输入字符串,直到遇到 EOF(即按下 Ctrl + Z)为止。然后调用自定义函数 str_length,得到字符串长度,输出即可。
需要注意的是,上述代码中的字符串长度是指字符个数,而不是字节个数。如果要计算字节个数,可以使用 `strlen` 函数。
相关问题
编写自定义函数返回一个字符串的字符个数,不包含'\\0'。在主函数中输入若干字符串,利用自定义函数,输出它们的长度。
可以使用以下代码实现:
```
#include <stdio.h>
#include <string.h>
int str_len(char *str) {
int len = 0;
while (*str != '\0') {
len++;
str++;
}
return len;
}
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
printf("字符串长度为:%d\n", str_len(str));
return 0;
}
```
在上面的代码中,我们定义了一个自定义函数 `str_len`,它的作用是返回一个字符串的字符个数,不包含 '\0'。在主函数中,我们通过输入一个字符串,然后调用自定义函数来输出它的长度。
在主函数中输入一串字符,其中包含数字和非数字字符,通过调用一个自定义函数getdig
可以实现获取字符串中所有数字字符的功能。具体实现的步骤如下:
1. 在主函数中,输入一串字符。
2. 调用自定义函数getdig,将输入的字符串作为参数传入。
3. 在getdig函数中,声明一个空列表,用于存放数字字符。
4. 遍历传入的字符串的每个字符。
5. 通过isdigit()函数判断字符是否为数字字符。若是数字字符,则将其添加到列表中。
6. 遍历结束后,返回存放数字字符的列表。
7. 在主函数中,接收getdig函数返回的列表,并输出结果。
示例代码如下:
```python
def getdig(string):
digits = [] # 存放数字字符的列表
for char in string:
if char.isdigit():
digits.append(char)
return digits
def main():
string = input("请输入一串字符:")
digit_list = getdig(string)
print("字符中的数字为:", "".join(digit_list))
if __name__ == "__main__":
main()
```
例如,当在主函数中输入字符串"abc123def456",则输出结果为"123456",表示从输入的字符串中提取出了数字字符。