C语言——计算输入的字符串的长度

本文详细解释了C/C++中strlen和sizeof两个函数的区别与用法。通过实例演示了strlen如何计算字符串中的字符数量,以及sizeof如何计算分配给字符串的总内存空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<strong>计算长度有两个函数:strlen   sizeof   
strlen  计算字符串里面一共有多少个字符
sizeof  计算字符串占的总内存空间
如:
char str[20]={"123456"}; 
strlen(str);等于  6
sizeof(str);  等于20</strong>

#include <iostream>  
#include <cstring>  
using namespace std;  
  
int main()  
{  	
	int len,lenn;
	char a[100];
	
 	scanf("%s",&a);
 	
 	len=strlen(a);
 	lenn=sizeof(a);
 	
 	printf("%d",len);
 	printf("%d",lenn);
} 


### C语言输入字符串的方法 在C语言中,可以通过不同的方法和函数来完成字符串输入操作。以下是几种常见的方法及其对应的示例代码。 #### 使用 `scanf()` 函数 `scanf()` 是一种通用的输入函数,能够读取各种类型的输入数据,包括字符串。需要注意的是,默认情况下,`scanf()` 遇到空格、制表符或回车键时会停止读取[^1]。 ```c #include <stdio.h> int main() { char str[100]; printf("请输入一个字符串(不包含空格):"); scanf("%s", str); // %s 表示读取字符串直到遇到空白字符为止 printf("您输入字符串是:%s\n", str); return 0; } ``` #### 使用 `getchar()` 或其他单字符输入函数组合 虽然 `getchar()` 主要用于逐个字符的输入,但它也可以通过循环构建完整的字符串[^2]。 ```c #include <stdio.h> #define MAX_LEN 100 int main() { char str[MAX_LEN], ch; int i = 0; printf("请输入一个字符串(按 Enter 结束):\n"); while ((ch = getchar()) != '\n' && i < (MAX_LEN - 1)) { // 循环读取字符直至换行符 str[i++] = ch; } str[i] = '\0'; // 添加字符串结束标志 \0 printf("您输入字符串是:%s\n", str); return 0; } ``` #### 使用 `gets()` 函数 `gets()` 能够一次性读入一整行的内容,包括带有空格的字符串。然而,由于其安全性较低,在现代编程实践中已被废弃,建议改用更安全的方式替代。 ```c #include <stdio.h> int main() { char str[100]; printf("请输入一行字符串(注意:此方式已过时并存在风险):"); gets(str); // 不推荐使用,容易引发缓冲区溢出等问题 printf("您输入字符串是:%s\n", str); return 0; } ``` #### 推荐的安全替换方案 —— `fgets()` 为了弥补 `gets()` 的不足之处,通常采用 `fgets()` 来代替它执行类似的任务。该函数允许指定最大长度从而防止潜在的风险发生。 ```c #include <stdio.h> int main() { char str[100]; printf("请输入一行字符串:"); fgets(str, sizeof(str), stdin); // 安全地读取至多99个字符加终止符'\0' printf("您输入字符串是:%s", str); return 0; } ``` 以上就是关于如何利用不同手段实现C语言字符串输入的一些基本介绍以及相应实例展示。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值