c语言编写:不使用系统函数,求键盘输入字符串的长度
时间: 2024-09-14 21:15:17 浏览: 55
在C语言中,如果不使用系统函数如`strlen`来求字符串的长度,可以通过循环遍历字符串,直到遇到字符串的结束符`\0`来实现。下面是一个不使用系统函数计算字符串长度的示例代码:
```c
#include <stdio.h>
int stringLength(const char *str) {
int length = 0;
while (str[length] != '\0') {
length++;
}
return length;
}
int main() {
char input[100]; // 假设输入的字符串不超过99个字符
printf("请输入一个字符串: ");
scanf("%99s", input); // 使用%99s限制输入长度,防止溢出
int length = stringLength(input);
printf("字符串的长度是: %d\n", length);
return 0;
}
```
在这个例子中,`stringLength` 函数接收一个指向字符串的指针作为参数,然后通过一个`while`循环逐个字符检查,直到遇到字符串结束符`\0`。每循环一次,长度`length`变量就增加1,最后返回这个长度值。
相关问题
运用c语言编写:从键盘输入一个串,求串的长度
在C语言中,可以使用`strlen()`函数来求解字符串的长度。该函数需要一个指向字符串的指针作为参数,返回值即为字符串的实际长度(不包括结束的空字符'\0')。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h> // 包含 strlen 函数
int main() {
char str[100]; // 定义一个足够大的字符串数组来存储输入
int len;
printf("请输入一个字符串: ");
fgets(str, sizeof(str), stdin); // fgets用于从键盘读取字符串,直到遇到换行符
// 移除fgets读取的最后一行末尾的换行符(如果有的话)
str[strcspn(str, "\n")] = '\0';
len = strlen(str); // 计算字符串长度
printf("输入字符串的长度是: %d\n", len);
return 0;
}
```
这里使用了`fgets()`函数从标准输入读取字符串,包括换行符。之后使用`strcspn()`函数移除字符串结尾的换行符,因为`strlen()`会停止在第一个'\0'字符前,而换行符就是我们要去除的一个特殊字符。
使用c语言编写一个函数reverseString.用于反转一个字符串。 要求使用字符指针实现。 输入:从键盘输入一 个字符串,以回车结束。假设输入的字符串长度不超过100。输出:输出反转后的字符串。
好的,下面是函数 `reverseString` 的代码实现:
```c
#include <stdio.h>
#include <string.h>
void reverseString(char *str) {
int len = strlen(str);
char temp;
for (int i = 0; i < len / 2; i++) {
temp = *(str + i);
*(str + i) = *(str + len - i - 1);
*(str + len - i - 1) = temp;
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
reverseString(str);
printf("反转后的字符串为:%s\n", str);
return 0;
}
```
函数 `reverseString` 的实现思路是:首先计算字符串的长度,然后从头和尾开始交换字符,直到交换到中间位置。最后在主函数中调用该函数并输出反转后的字符串。
阅读全文