#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语言 读取字符串数组中的字符串并获取字符串的长度相关推荐

  1. 在有空字符串的有序字符串数组中查找(找给定字符串)

    题目:在有空字符串的有序字符串数组中查找 有个排序后的字符串数组,其中散布一些空字符串,编写一个方法,找出给定字符串(肯定不是空字符串)的索引. package zifusearch;public c ...

  2. php 分割取最后一个,在PHP中分割字符串并获取最后一部分

    split($pattern,$string)在给定模式或正则表达式中分割字符串(自5.3.0以来已被弃用) preg_split($pattern,$string)在给定的正则表达式模式中分割字符串 ...

  3. LeetCode 5380. 数组中的字符串匹配

    5380. 数组中的字符串匹配 python 字符串长度排序 class Solution:def stringMatching(self, words: List[str]) -> List[ ...

  4. C语言试题四十六之将m行n列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。

    1. 题目 请编写一个函数function,它的功能是:将m行n列的二维数组中的字符数据,按列的顺序依次放到一个字符串中. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试 ...

  5. java返回字符数组_JAVA语言实现随机返回字符串数组中的字符串

    本文主要向大家介绍了JAVA语言实现随机返回字符串数组中的字符串,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. //随机返回字符串数组中的字符串 public static Stri ...

  6. 将字符数组中的字符转换为整型变量的数字 将字符串转换为数字

    首先要保证字符数组或字符串中的数据是数字,这样才能转换. 检测字符数组或字符串中是否为数字的方法: 遍历字符数组或字符串,检测是否有非数字字符,若有则无法转换,若没有则可以进行转换. 将字符数组或字符 ...

  7. c语言统计字符数组上字母和数字,C语言问题求数组中的字母数字字符个数 – 手机爱问...

    编个程序要求满足以下功能将字符串数组中每一行中的大写字母A.B.C都换成数字2,并且去除字符串中的连字符号'-',但是数字保持不变.设字符串数组有3行.例如:字符串内容为:输出的内容为A-BC-CBC ...

  8. C语言将字符串s连接到t的后面,下列给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到字符串t..._考试资料网...

    问答题下列给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到字符串t中,然后把s中的字符按逆序连接到字符串t的后面. 例如,当s中的字符串为"ABCDE"时,则t中的 ...

  9. c语言删除字符常数组的某一个元素,C语言实现删除数组中某个元素

    C语言实现删除数组中某个元素 大家知道C语言实现删除数组中某个元素方法吗?下面将讲述在C语言中实现删除数组中某个元素的两种方法,大家一起看看吧. 方法1:/* name: c语言 删除数组的某个元素 ...

最新文章

  1. SLAM++: SLAM at the Level of Objects
  2. 中科点击矩阵式推进大数据落地与应用
  3. 【树链剖分】Disruption P(luogu 4374)
  4. python可变参数教学,Python函数可变参数详解
  5. (软件工程复习核心重点)第二章可行性研究-第三节:数据流图
  6. 1 数列分块入门_怎样用通俗易懂的语言让小学 OIer 理解并能初步运用线段树?...
  7. 突然有点想和你唠嗑了~
  8. 吴恩达神经网络和深度学习-学习笔记-23-快速搭建你的第一个系统原型,然后迭代
  9. Android Studio NDK报错:mips64el-linux-android-strip 找不到
  10. 依赖注入(DI)入门
  11. 关于Java锁机制面试官会怎么问,深刻易懂
  12. 打印机出现另存为xps_打印机打印文件显示另存为xps格式的文件 - 卡饭网
  13. STRUTS 2 教程
  14. 【CSS】设置 border 长度
  15. 河南第八届ACM省赛(真题训练)
  16. win10计算机休眠快捷键,键盘快捷键关闭或休眠Windows 10 | MOS86
  17. c语言的typedef struct 对应java参数类型,JNA实战系列:02JNA与C语言中的数据类型映射以及复杂结构体传参示例...
  18. is_enabled:selenium中判断元素是否可以使用;is_selected()/is_displayed()
  19. Swagger使用方法
  20. Python网络数据爬取及分析-智联招聘

热门文章

  1. HTTP请求常见状态码
  2. android viewpager嵌套侧滑删除listview冲突问题
  3. windows azure之创建虚拟机
  4. C语言库函数(Q类字母)
  5. Schmid Telecom选择StoreAge SVM实现数据镜像保护
  6. 手机远程ssh登录Linux,Linux SSH(远程登录)到Milestone手机
  7. Fragment详解之二——基本使用方法
  8. 使用Java处理除法运算的陷阱
  9. for表达式的语句执行顺序?
  10. 在C#中调用windows API函数