字符数组

C语言字符数组和字符串

Deadly 提交于 2019-11-27 20:12:35
用来存放字符的数组称为字符数组,例如: char a [ 10 ]; //一维字符数组 char b [ 5 ][ 10 ]; //二维字符数组 char c [ 20 ]= { 'c' , ' ' , 'p' , 'r' , 'o' , 'g' , 'r' , 'a' , 'm' } ; // 给部分数组元素赋值 char d []= { 'c' , ' ' , 'p' , 'r' , 'o' , 'g' , 'r' , 'a' , 'm' } ; //对全体元素赋值时可以省去长度 字符数组实际上是一系列字符的集合,也就是字符串(String)。在C语言中,没有专门的字符串变量,没有string类型,通常就用一个字符数组来存放一个字符串。 C语言规定,可以将字符串直接赋值给字符数组,例如: char str [ 30 ] = { "c.biancheng.net" } ; char str [ 30 ] = "c.biancheng.net" ; //这种形式更加简洁,实际开发中常用 数组第0个元素为 'c',第1个元素为 '.',第2个元素为 'b',后面的元素以此类推。也可以不指定数组长度,例如: char str [] = { "c.biancheng.net" } ; char str [] = "c.biancheng.net" ; //这种形式更加简洁,实际开发中常用

字符数组和字符串数组

醉酒当歌 提交于 2019-11-27 20:12:21
demo int _tmain(int argc, _TCHAR* argv[]) { char a[5] = {1,2,3,4,5};  //字符数组 char b[5] = {1,2,3,4,'\0'};  //字符数组,也可以叫字符串数组;a[5]不可以叫字符串数组 char c[5] = "test";  //字符数组,也可以叫字符串数组,a[5]不可以叫字符串数组 int arry[5] = {10000,2147483647,2147483647,2147483647,2147483647};  //整型数组 getchar(); return 0; } - a 0x00cffc70 "烫烫烫烫烫蘆" char [5] [0] 1 '' char [1] 2 '' char [2] 3 '' char [3] 4 '' char [4] 5 '' char strlen(a) 18 int sizeof(a) 5 unsigned int - b 0x00cffc60 "" char [5] [0] 1 '' char [1] 2 '' char [2] 3 '' char [3] 4 '' char [4] 0 char strlen(b) 4 int sizeof(b) 5 unsigned int - c 0x00cffc50 "test" char [5] [0

C语言程序设计(十)

孤者浪人 提交于 2019-11-27 18:47:41
第十章 字符串 字符串常量是由一对双引号括起来的一个 字符串序列 字符串实际就是由若干个有效数字构成且以字符'\0'作为结束的一个字符序列 C语言没有提供字符串数据类型,因此字符串的存取要用 字符型数组 来实现 字符型数组是由字符构成的数组,仅当其最后一个元素是'\0'时才表示字符串 字符串结束标志'\0'也占一个字节的内存,但 它不计入字符串的实际长度,只计入数组的长度 正确写法: char str[6] = {'H','e','l','l','o','\0'}; char str[] = {'H','e','l','l','o','\0'}; char str[] = {"hello"}; char str[] = "hello"; 编译系统会根据字符串中字符的个数来确定数组的大小 数组的大小为字符串中实际字符的个数加1 多个字符串需要存放在二维字符数组中 数组第一维的长度代表要存储的字符串的个数,可以省略 但是 第二维的长度不能省略 字符指针:指向字符型数据的指针变量 只要将字符串的首地址赋值给字符指针,即可让字符指针指向一个字符串 字符串常量本身代表的就是存放它的常量存储区的首地址,是一个地址常量 char *ptr = "Hello"; 等价于 char *par; ptr = "Hello"; /* 将保存在常量存储区中的"Hello"的首地址赋值给ptr

java字符串详解

元气小坏坏 提交于 2019-11-27 15:05:19
一、String 类的定义 public final class String implements java.io.Serializable, Comparable<String>, CharSequence String是一个final类,不能被继承的类 String类实现了java.io.Serializable接口,可以实现序列化 String类实现了Comparable<String>,可以用于比较大小(按顺序比较单个字符的ASCII码) String类实现了 CharSequence 接口,表示是一个有序字符的序列,因为String的本质是一个char类型数组 1、字段属性 //用来存字符串,字符串的本质,是一个final的char型数组 private final char value[]; //缓存字符串的哈希,是String实例化的hashcode的一个缓存。因为String经常被用于比较,比如在HashMap中。如果每次进行比较都重新计算hashcode的值的话,那无疑是比较麻烦的,而保存一个hashcode的缓存无疑能优化这样的操作 private int hash; // Default to 0 //实现序列化的标识 private static final long serialVersionUID = -6849794470754667710L; 2

C++ 算法

只谈情不闲聊 提交于 2019-11-27 14:26:55
第3章 控制语句 /* 1、打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153 = 13 + 53 + 33。 */ #include<iostream.h> void main() { int i, a=0, b=0, c=0; for(i=100;i<1000;i++) { a=i%10; b=i/10%10; c=i/100%10; if(a*a*a+b*b*b+c*c*c==i) cout<<"i="<<i<<endl; } } /* 2、一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6 = 1 + 2 + 3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面的格式输出其因子: 6 -〉1,2,3 */ #include<iostream.h> void main() { int i,j,sum=0,a[50],k,t; for(i=1;i<=1000;i++) { sum=0; for(j=1;j<i;j++) { if(i%j==0) { sum+=j; a[k++]=j; } } t=k; if(sum==i) { cout<<i<<"->"; for(k=0;k<t;k++) { cout<<a[k]; if(k<t-1)cout<<",";

1.9 字符数组 练习

北城以北 提交于 2019-11-27 12:46:29
练习1-16  修改打印最长文本行的程序的主程序main,使之可以打印任意长度的输入行的长度,并尽可能多地打印文本。 练习1-17  编写一个程序,打印长度大于80个字符的所有输入行。 练习1-18  编写一个程序,删除每个输入行末尾的空格及制表符,并删除完全是空格的行。 练习1-19  编写函数reverse(s),将字符串s中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序。 来源: http://www.cnblogs.com/zlqw/p/8452772.html

JAVA 基础

旧街凉风 提交于 2019-11-27 11:37:02
1. Java数据类型 Java是强类型语言,所有的变量必须先声明后使用,定义变量需要显示的声明一个在编译时就能确定的类型。 Java中的数据类型有两种,基本类型(Primitive Type)和引用类型(Reference Type)。 1)基本数据类型 Java 基本类型分为两类:数值型和布尔型。数值型可分为整型以及浮点型,整形中的字符型也可单独分为一类。所以一般把基本类型分为4类,如下表: 分类 类型 长度 整数型 int 32位 long 64位 short 16位 byte 8位 字符型 char 16位 浮点型 double 64位 float 32位 布尔型 boolean 1位 ①整型:int为最常用的整型变量。系统中的整数常量会被看作int处理。但有以下两个例外: 如果一个整数很小(在byte或short)的范围内,当这个整数常量被付给一个byte或short变量时,整数常量会被当作byte或short类型。 如果一个巨大的整数常量(超出了Int的存储范围)时,系统不会把这个整数当作long类型处理,除非用户在常量后加上一个字母"L"。 示例: [java] view plain copy public class IntegerValTest { public static void main(String[] args) { //下面代码是正确的

StringUtils工具类常用api <转>

旧街凉风 提交于 2019-11-27 11:05:33
该工具类是用于操作Java.lang.String类的。 StringUtils类与String类的区别在于:此类是null安全的,即如果输入参数String为null,则不会抛出NullPointerException异常,代码更健壮。 以函数isEmpty为例子: 存在字符串stringTest, 若该字符串为空,返回 1.使用String类判断方法为: if(null !=stringTest){ if(stringTest.isEmpty()){ return true; } }else{ return true; } 该方法需要先进行非空判断,已避免空指针。 2.使用StringUtils的判断方法为: if(StringUtils.isEmpty(stringTest )){ return true; } 查看StringUtils的源码可知: public static boolean isEmpty(String str){ return (str == null) || (str.length() == 0); } 其相关的操作已经处理好。再查看常见操作trim函数的源码如下: public static String trim(String str){ return str == null ? null : str.trim(); } 因此可知

小菜鸟之JAVA输入输出

纵然是瞬间 提交于 2019-11-27 10:43:56
Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。 字节流和字符流的区别: 读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。 处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。 字节流:一次读入或读出是8位二进制。 字符流:一次读入或读出是16位二进制。 设备上的数据无论是图片或者视频,文字,它们都以二进制存储的。二进制的最终都是以一个8位为数据单元进行体现,所以计算机中的最小数据单元就是字节。意味着,字节流可以处理设备上的所有数据,所以字节流一样可以处理字符数据。 结论:只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。 输入流和输出流 输入流只能进行读操作,输出流只能进行写操作,程序中需要根据待传输数据的不同特性而使用不同的流。 输入字节流 InputStream

MFC常用类、成员函数、数组类、Cstring类、CTime类、CPoint类

心已入冬 提交于 2019-11-27 08:48:19
MFC数组类 CByteArray: CDWordArray: CPtrArray: CUIntArray: CWordArray: CStringArray: 常用成员函数 1.int Add( ARG_TYPE newElement ); throw( CMemoryException ); 2.TYPE& ElementAt( int nIndex ); 3.void FreeExtra( ); 4.TYPE GetAt( int nIndex ) const 5.int GetSize( ) const; 6.int GetUpperBound( ) const; 7.(1)void InsertAt( int nIndex, ARG_TYPE newElement, int nCount = 1 ); throw( CMemoryException ); (2)void InsertAt( int nStartIndex, CArray* pNewArray ); throw( CMemoryException ); 8.void RemoveAll( ); 9.void SetAt( int nIndex, ARG_TYPE newElement ); 10.void SetAtGrow( int nIndex, ARG_TYPE newElement ); throw