C语言 读取字符串数组中的字符串并获取字符串的长度
#include <stdio.h>
#define LENGTH 128
#define NUMBER 5int main(void){int i;char s[NUMBER][LENGTH];for(i = 0; i < NUMBER; i++){printf("s[%d] : ", i);scanf("%s", s[i]);}puts("-----------打印字符串-----------");for(i = 0; i < NUMBER; i++){printf("s[%d] = \"%s\"\n", i, s[i]);}return 0;
}
程序中的数组s是5行128列的二维数组,即每行的字符串长度为127(null字符占用1节存储空间),可存储5行字符串。
注:字符串数据,将它们传入scanf函数时不可以带 & 运算符。
运行结果:
#include <stdio.h>
#define LENGTH 128int str_length(const char s[]){int len = 0;while (s[len]){len++;}return len; // 返回数组str中首个值为null的元素的下标值
}int main(void){char str[LENGTH];printf("请输入字符串:");scanf("%s", str);printf("字符串\"%s\"的长度是 %d。 \n", str, str_length(str));
}
运行结果:
while 语句在循环条件表达式为非0的情况下,会执行循环体语句。该循环语句,会从头开始遍历数组。
循环继续的条件是, s[len]不是0,即不是null字符。变量len的初始值为0,每次执行循环体语句就自增1,直至出现null字符为止。
数组的长度为128,实际存储的长度只有5,剩下的都是空的。由此可知,字符串不一定正好撑满字符串数组。因为字符串中含有表示其末尾的null字符,所以第一个字符到 ‘\0’ (的前一个字符)为止的字符数,就是该字符串的长度。
使用指针遍历,获取字符串长度
#include <stdio.h>int str_length (const char *s){int len = 0;while (*s++){len++;}return len;
}int main(void){char str[128];printf("请输入字符串:");scanf("%s", str);printf("字符串\"%s\"的长度是%d。\n", str, str_length(str));return 0;
}
使用库中的函数获取字符串的长度
头文件 | 原形 | 说明 | 返回值 |
---|---|---|---|
#include <string.h> | size_t strlen(const char *s) | 求出s指向的字符串的长度(不包括null字符)。 | 返回s指向的字符串的长度。 |
#include <stdio.h>
#include <string.h>int main(void){char *p = "vvcat";printf("字符串的长度为%d", strlen(p));return 0;
}
实现strlen函数
#include <stdio.h>size_t strlen(const char *s){size_t len = 0;while(*s++){len++;}return len;
} int main(void){char *p = "vvcat";printf("字符串的长度为%d", strlen(p));return 0;
}
C语言 读取字符串数组中的字符串并获取字符串的长度相关推荐
- 在有空字符串的有序字符串数组中查找(找给定字符串)
题目:在有空字符串的有序字符串数组中查找 有个排序后的字符串数组,其中散布一些空字符串,编写一个方法,找出给定字符串(肯定不是空字符串)的索引. package zifusearch;public c ...
- php 分割取最后一个,在PHP中分割字符串并获取最后一部分
split($pattern,$string)在给定模式或正则表达式中分割字符串(自5.3.0以来已被弃用) preg_split($pattern,$string)在给定的正则表达式模式中分割字符串 ...
- LeetCode 5380. 数组中的字符串匹配
5380. 数组中的字符串匹配 python 字符串长度排序 class Solution:def stringMatching(self, words: List[str]) -> List[ ...
- C语言试题四十六之将m行n列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。
1. 题目 请编写一个函数function,它的功能是:将m行n列的二维数组中的字符数据,按列的顺序依次放到一个字符串中. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试 ...
- java返回字符数组_JAVA语言实现随机返回字符串数组中的字符串
本文主要向大家介绍了JAVA语言实现随机返回字符串数组中的字符串,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. //随机返回字符串数组中的字符串 public static Stri ...
- 将字符数组中的字符转换为整型变量的数字 将字符串转换为数字
首先要保证字符数组或字符串中的数据是数字,这样才能转换. 检测字符数组或字符串中是否为数字的方法: 遍历字符数组或字符串,检测是否有非数字字符,若有则无法转换,若没有则可以进行转换. 将字符数组或字符 ...
- c语言统计字符数组上字母和数字,C语言问题求数组中的字母数字字符个数 – 手机爱问...
编个程序要求满足以下功能将字符串数组中每一行中的大写字母A.B.C都换成数字2,并且去除字符串中的连字符号'-',但是数字保持不变.设字符串数组有3行.例如:字符串内容为:输出的内容为A-BC-CBC ...
- C语言将字符串s连接到t的后面,下列给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到字符串t..._考试资料网...
问答题下列给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到字符串t中,然后把s中的字符按逆序连接到字符串t的后面. 例如,当s中的字符串为"ABCDE"时,则t中的 ...
- c语言删除字符常数组的某一个元素,C语言实现删除数组中某个元素
C语言实现删除数组中某个元素 大家知道C语言实现删除数组中某个元素方法吗?下面将讲述在C语言中实现删除数组中某个元素的两种方法,大家一起看看吧. 方法1:/* name: c语言 删除数组的某个元素 ...
最新文章
- SLAM++: SLAM at the Level of Objects
- 中科点击矩阵式推进大数据落地与应用
- 【树链剖分】Disruption P(luogu 4374)
- python可变参数教学,Python函数可变参数详解
- (软件工程复习核心重点)第二章可行性研究-第三节:数据流图
- 1 数列分块入门_怎样用通俗易懂的语言让小学 OIer 理解并能初步运用线段树?...
- 突然有点想和你唠嗑了~
- 吴恩达神经网络和深度学习-学习笔记-23-快速搭建你的第一个系统原型,然后迭代
- Android Studio NDK报错:mips64el-linux-android-strip 找不到
- 依赖注入(DI)入门
- 关于Java锁机制面试官会怎么问,深刻易懂
- 打印机出现另存为xps_打印机打印文件显示另存为xps格式的文件 - 卡饭网
- STRUTS 2 教程
- 【CSS】设置 border 长度
- 河南第八届ACM省赛(真题训练)
- win10计算机休眠快捷键,键盘快捷键关闭或休眠Windows 10 | MOS86
- c语言的typedef struct 对应java参数类型,JNA实战系列:02JNA与C语言中的数据类型映射以及复杂结构体传参示例...
- is_enabled:selenium中判断元素是否可以使用;is_selected()/is_displayed()
- Swagger使用方法
- Python网络数据爬取及分析-智联招聘