/*运行环境:vs2013*/
#include<stdio.h>
//要求在数组内将字符进行反序,并求输入字符串的大小
int main()
{char s[20];scanf_s("%s",&s,sizeof(s));                   //此处必须增加字符串大小,否则编译 不通过int i = 0, j = 0;                 //两个变量记录字符串开头及结尾位置while (s[i])++i;                       //求得输入字符串长度printf("你输入的字符串长度是%d\n",i);puts(s);char t;                          //定义一个临时变量存放交换数据while (--i>j){t = s[i];s[i] = s[j];s[j] = t;++j;}puts(s);                      //输出字符串return 0;
}

上述demo中字符串char s[20]及scanf_s函数只能针对字符情况,不适用int型数组,int 数据需要采用以下形式(冒泡排序):

#include <stdio.h>
#include<stdlib.h>
int main()
{//int a[10] = {31,35,36,38,39,40,45,48,90,10};int a[10];printf("请输入10个数:");int i = 0;while (i<_countof(a)){scanf_s("%d", &a[i], sizeof(a));++i;}printf("*******排序前********\n");for (int i = 0; i < _countof(a); i++){printf("a[%d]=%d\n", i, a[i]);}printf("*******排序后********\n");i = 0;while (i <_countof(a)-1){int  j = 0;while (j<_countof(a) - 1 - i){if (a[j]>a[j + 1])//从大 到小a[j]<a[j+1]{int t = a[j];a[j] = a[j + 1];a[j + 1] = t;}++j;}++i;}i = 0;while (i<_countof(a) ){printf("%d ",a[i++]);}return 0;
}

字符串数组

1.字符串数组是一种特殊的数组,主要特点如下:

(1)必须是char类型的数组。

(2)在数组定义有效空间内,必须包含‘\0’的字节,并且用'\0'作为字符串结束符。

2.字符串数组长度和字符串长度

a)strlen函数是用来计算字符串中有效字符长度;(不包括结束符);

b)sizeof函数用来求字符串数组元素的个数,至少比strlen大一个以上;

#include<stdio.h>
#include<string.h>
int Str_len(char *p);
int main()
{char s[50];scanf_s("%s",s,sizeof(s));int len = strlen(s);               //C语言自带求长度函数printf("字符串长度是:%d\n",len);int lenlen = Str_len(s);            //自己编写的求长度函数printf("字符串长度是:%d\n", lenlen);return 0;
}
int  Str_len(char*p)
{int i = 0;while (p[i]!='\0'){++i;}return i;
}

c)strlen函数计算是从数组头循环到'\0'结束,得出字符串有效长度总是小于sizeof得出数值;

d)sizeof得出数组的长度与数组元素无关,而strlen与数组元和和结束符'\o'有关。

注意:无论什么类型的指针,在VS中都是占四个字节,如下所示:

#include<stdio.h>
double g1 = 100.1;
int n2[20] = {0,15,100,89,20};
int main()
{int *p1 = 0, *p2 = NULL;p1 = n2;double*p3 = &g1;printf("sizeof(p1)=%d\n",sizeof(p1));printf("sizeof(p2)=%d\n", sizeof(p2));printf("sizeof(p3)=%d\n", sizeof(p3));return 0;
}

运行结果(VS2013)

C/C++——求数组长度及反序相关推荐

  1. 函数中使用sizeof(arr) / sizeof(arr[0])求数组长度不正确的原因

    参考文章:c中自定义函数通过sizeof来输出数组的长度为何不正确?[原创] 错误原因 我们可以使用sizeof(arr) / sizeof(arr[0])求数组长度,但是要注意:sizeof()函数 ...

  2. c++求数组长度 和vector用法

    一.c++求数组长度 int len=sizeof(arr)/size(arr[0]) 二.vector用法 2.1vector初始化 (1)vector<int> a(10); //定义 ...

  3. c语言在函数中使用sizeof求数组长度

    c语言sizeof的重要用途之一就是求数组长度,但是sizeof必须在数组定义的位置使用.不能作为参数传入函数并在函数中使用sizeof: 比如下边这个例子 函数中打印结果为: 数组的长度应该是5但是 ...

  4. java基础——求数组长度、遍历数组、求最值和数组元素反转

    一.求数组长度 获取数组的长度的格式: 数组名称.length这将会得到一个int数字,代表数组的长度.数组一旦创建,程序运行期间,长度不可改变. 代码如下: public class Demo08 ...

  5. Arduino定义数组,求数组长度,

    arduino定义数组的几种数据类型: 1.整型.int a[ ] = { };定义整型空数组.int a[ ] = {1,2 };定义数组并初始化赋值.int a[3] = {1,2,3 };定义数 ...

  6. 求数组长度的几个函数

    纯纯小白,有错请指出,谢谢. 1.sizeof函数 对于一个给定数组,如:int arr[]={1,2,3,4,5} , 可以利用 sizeof(arr)/sizeof(arr[0]) 的方式来求字符 ...

  7. c语言整形数组长度_c语言中如何求数组长度

    展开全部 1.c语言中,e5a48de588b63231313335323631343130323136353331333337613861定义数组后可以用sizeof命令获得数组的长度(可容纳元素个 ...

  8. 解答java中如何求数组长度?

    方法很简单,只要数组名称.length就可以了.下面举个例子 但是记住,数组一旦创建,在程序运行期间,长度不允许改变.除非你new一个数组.

  9. java 设置数组长度_java如何增加数组长度

    遇到一个面试题:在不使用list的add方法的情况下,动态的添加元素(大概是这个样子): ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,需学习arraylist的相关知识(ht ...

  10. java数组长度为0和数组为null

    长度为0的数组,可以求数组长度,为0,即数组内没有元素. int[] zero = new int[0]; //zero引用一个长度为0的数组对象 为null的数组,不能求数组长度,且求解时会出现空指 ...

最新文章

  1. Fedora 32 因 Bug 将推迟发布
  2. 《网络安全——应用技术与工程实践》
  3. 推荐的这5个高效在线工具,每一个都很良心!
  4. codeforces 110A-C语言解题报告
  5. 安卓超过两行就加省略号_基础标点符号使用规则详解—8.省略号
  6. (二分)Trailing Zeroes (III)
  7. 物联网云计算成本核算 小厂的出路在哪里
  8. 电大计算机网络本作业1,2017年最新电大计算机网络作业1-3答案.doc
  9. C#图片处理之: 锐化
  10. 放射性核废料处理matlab模型,放射性废物处理问题
  11. python selenium page object_Selenium Page Object 自动化测试框架-Page Object设计
  12. 会赚钱的教师才是好教师
  13. 《九阴真经:iOS黑客攻防秘籍》新书发布
  14. flutter插件出现英文
  15. 微信支付测试商户号开发必备(有效的)
  16. STM32F103C8T6 核心板
  17. 勒索病毒来袭!及时备份数据吧!
  18. Linux 父进程子进程的进程分析
  19. 面向万物智联的云原生网络
  20. 客户端运行过程中如果用户要卸载如何给出关闭进程提示

热门文章

  1. Winform--处理MDI父窗体与子窗体的交互
  2. UPC 2019年第二阶段我要变强个人训练赛第六场
  3. 用pycharm+flask 建立项目以后运行出现ImportError: No module named flask-login问题
  4. SaaS应用“正益工作”发布,为大中型企业轻松构建移动门户
  5. Linux php.ini设置date.timezone=XXX为什么不生效?
  6. Hibernate 一对多连接表单向关联
  7. C#调用c++Dll结构体数组指针的问题
  8. Linux下基本TCP socket编程之客户端
  9. SAAS及PAAS的概念
  10. Java collection 集合类架构