当前位置:文档之家› 字符串处理及基础类库

字符串处理及基础类库

字符串处理及基础类库
字符串处理及基础类库

实验六字符串处理及基础类库

实验学时:2 实验类型:验证性

一、实验目的

1.理解并掌握String类、StringBuffer类、StringTokenizer类等,特别注意掌握字符串与变量之间的转换。

2.了解java提供的常用类包,主要有系统类、包装类、数学类、日历类、随机类等,充分利用java资源,使编程更加快捷有效。。

3.掌握Java Application命令行参数的使用。

二、实验要求

1.理解并掌握String类、StringBuffer类、StringTokenizer类等,特别注意掌握字符串与变量之间的转换。

2.了解常用类包有何用途,实验用到哪些常用类?

三、实验步骤

(一)字符串操作练习

1. String类的常见方法及与其他数据类型的转换练习。

public class StringTest{

public static void main(String [] args)

{

String s="ABCDEFGHIJKLMN";

System.out.println(s);

System.out.println("The string contains"+s.length());

System.out.println("The character at index 4 is:"+s.charAt(4));

System.out.println("The index of character N is:"+s.indexOf('N'));

String alphabet="ABCDEFGHIJKLMN";

System.out.println(alphabet);

System.out.println("The substring from index 4 to index 8 is"+alphabet.substring(4,8));

System.out.println("The substring from index 0 to index 8 is"+alphabet.substring(0,8));

System.out.println("The substring from index 8 to end is"+alphabet.substring(8));

String sbis="StringBufferInputStream";

System.out.println(sbis);

String sbislc=sbis.toLowerCase();

System.out.println(sbislc);

String sbisup=sbis.toUpperCase();

System.out.println(sbisup);

String first="James";

String last="Gosling";

System.out.println(first+last);

System.out.println(first+","+last);

String str="This is the Mississippi River";

System.out.println(str);

int i=str.indexOf('s');

System.out.println("The first index of 's' is "+i);

int j=str.indexOf('s',i+1);

System.out.println("The next index of 's' is "+j);

int k=str.indexOf('s',j+1);

System.out.println("The next index of 's' is "+k);

k=https://www.doczj.com/doc/0212444886.html,stIndexOf('s');

System.out.println("The last index of 's' is "+k);

System.out.println(str.substring(k));

String inventor="charles Babbage";

System.out.println(inventor);

System.out.println(inventor.replace('B','C'));

System.out.println(inventor);

int n=44;

System.out.println("n= "+n);

String strn=String.valueOf(n);

System.out.println("strn= "+strn);

String today="May 18,2009";

String todaysDayString=today.substring(4,6);

int todaysDayInt=Integer.parseInt(todaysDayString);

int nextWeeksDayInt=todaysDayInt+7;

String nextWeek=today.substring(0,4)+nextWeeksDayInt+today.substring(6);

System.out.println("Today's date is"+today);

System.out.println("Today's date is"+todaysDayInt);

System.out.println("next week's date is"+nextWeeksDayInt);

System.out.println("next week's date is"+nextWeek);

}

}

2.StringBuffer类练习

//StringBufferDemo.java

import java.applet.Applet;

import java.awt.Graphics;

public class StringBufferDemo extends Applet {

public void paint(Graphics g) {

String str="这是一个字符串——This is a test string";

g.drawString("正常字符串:"+str, 30, 30);

g.drawString("翻转字符串:"+reverse(str), 30, 60);

}

public String reverse(String s) {

int len=s.length();

StringBuffer buffer=new StringBuffer(len);

for (int i=len-1; i>=0; i--)

buffer.append(s.charAt(i));

return buffer.toString();

}

}

编译以上文件,并编写同名页面文件StringBufferDemo.html,内容如下:

在浏览器打开StringBufferDemo.html文件,观察运行结果。

(二)基础类库练习

1.日期和时间相关

(1)自定义一个类Time ,实现显示当前日期和时间的功能

import java.util.Calendar; class Time { private Calendar t; private int y, m, d, hh, mm, ss;

Time (){

t=Calendar.getInstance();

y=t.get(t.YEAR);

m=t.get(t.MONTH)+1;

d=t.get(t.DATE);

hh=t.get(t.HOUR_OF_DAY);

mm=t.get(t.MINUTE);

ss=t.get(t.SECOND);

}

public String getDate() {

return y+" 年"+m+"月"+d+"日";

}

public String getTime() {

String s=hh+" 时"+mm+"分"+ss+"秒";

return s;

}

public static void main(String args[]){

Time t=new Time();

System.out.println("当前日期:"+t.getDate());

System.out.println("当前时间:"+t.getTime());

}

}

(2)import java.util.*;

class HelloWorld {

public static void main(String args[]){

Date date1=new Date();

String temp=date1.toString();

temp=temp.substring(11,temp.indexOf('C'));

System.out.println(temp);

double sum=0.0;

for(int i=0;i<=10000000;i++){

sum+=i;

}

System.out.println(""+sum);

Date date2=new Date();

temp=date2.toString();

temp=temp.substring(11,temp.indexOf('C'));

System.out.println("现在时间是:"+temp);

System.out.println("toString:"+date2.toString());

System.out.println("toLocalString:"+date2.toLocaleString());

System.out.println("toString:"+date2.toGMTString());

System.out.println("

年:"+String.valueOf(Integer.parseInt(String.valueOf(date2.getYear()))+1900));

System.out.println("月:"+date2.getMonth());

System.out.println("月:"+date2.getDate());

System.out.println("日:"+date2.getDay());

System.out.println("小时数:"+date2.getHours());

System.out.println("分钟数:"+date2.getMinutes());

System.out.println("秒数:"+date2.getSeconds());

}

}

2.Vector类

import java.util.*;

public class MyVectorextendsVector{

public MyVector(){

super(1, 1); // 指定capacity 和capacityIncrement 取值

}

public void addInt(int i){

addElement(new Integer(i)); }

public void addFloat(float f){

addElement(new Float(f)); }

public void addString(String s){

addElement(s); }

public void addCharArray(char a[]){

addElement(a); }

public void printVector(){

Object o;

int length = size(); // 同capacity相比较

System.out.println("Number of vector elements is "+length+" and they are:");

for (int i = 0; i < length; i++){

o = elementAt(i);

if (o instanceof char[]){

//System.out.println(o); 不好

System.out.println(String.copyValueOf((char[]) o));

}

else System.out.println(o.toString());

}

}

public static void main (String args[]){

MyVector v = new MyVector();

int digit = 5;

float real = 3.14f;

char letters[] = {'a', 'b', 'c', 'd'};

String s = new String ("Hi there!");

v.addInt(digit);

v.addFloat(real);

v.addString(s);

v.addCharArray(letters);

v.printVector();

}

}

3.系统常用类包的使用。

该程序对所有常用包和一些方法进行了测试;主要理解字符串与变量之间的转换。

import java.io.*;

import java.math.*;

import java.util.*;

class CommonClassesTest

{ public static void main(String args[]) throws Exception

{//System系统类

System.out.println("-------System系统类-------");

char c;

int cc;

System.out.println("请输入一个字符");

cc=c=(char)System.in.read();

System.out.println("您输入的字符是:"+c);

System.out.println("您输入的值是:"+cc);

System.out.println("java版本是:"+System.getProperty("java.version"));

System.out.println("java Home是:"+System.getProperty("java.home"));

//lang语言类,创建数据类型对象

Integer I1=new Integer(100);

Float F1=new Float(3.14159);

double d1=Math.E;

Double D1=new Double(d1);

//数据类型对象转换成数值变量

System.out.println("-----数据类型对象转换成数值变量----");

int i1=I1.intValue();

float f1=F1.floatValue();

d1=D1.doubleValue();

System.out.println("i1="+i1);

System.out.println("f1="+f1);

System.out.println("d1="+d1);

//数据对象转换成数值字符串对象

System.out.println("-----数据对象转换成数值字符串对象----");

String sI1=I1.toString();

String sF1=F1.toString();

String sD1=D1.toString();

System.out.println("sI1="+sI1);

System.out.println("sF1="+sF1);

System.out.println("sD1="+sD1);

//字符串的常用方法

System.out.println("--------字符串的常用方法-----------");

System.out.println("sI1.length="+sI1.length());

System.out.println("sF1.substring="+sF1.substring(2,4));

System.out.println("sD1.replace="+sD1.replace('8','B'));

//应用数据对象的toString()将数值或变量直接转换成数值字符串对象

System.out.println("-----用toString()将数值或变量直接转换成数值字符串对象------");

int a=1234;

sI1=Integer.toString(a);

sF1=Float.toString((float)Math.PI);

sD1=Double.toString(Math.asin(0.5)*180/Math.PI);

System.out.println("sI1="+sI1);

System.out.println("sF1="+sF1);

System.out.println("sD1="+sD1);

//应用字符串对象的valueOf()将数值或变量直接转换成数值字符串对象

System.out.println("---用valueOf()将数值或变量直接转换成数值字符串对象---");

a=4321;

sI1=String.valueOf(a);

sF1=String.valueOf((float)Math.E);

sD1=String.valueOf(Math.asin(0.5)*180/Math.PI);

System.out.println("sI1="+sI1);

System.out.println("sF1="+sF1);

System.out.println("sD1="+sD1);

//将字符串转成数据对象再转成数值变量

System.out.println("---将字符串转成数据对象再转成数值变量---");

I1=Integer.valueOf(sI1); //转成数据对象

i1=I1.intValue(); //再转成变量

f1=Float.valueOf(sF1).floatValue();//两步合起来

d1=Double.valueOf(sD1).doubleValue();

int i2=Integer.parseInt("654321");//对整形数值串更简便

System.out.println("sI1转成变量i1="+i1);

System.out.println("sF1转成变量f1="+f1);

System.out.println("sD1转成变量d1="+d1);

System.out.println("parseInt直接转i2="+i2);

//日历类与随机类

System.out.println("---------日历与随机类----------");

Calendar now=Calendar.getInstance();

int year=now.get(Calendar.YEAR);

int month=now.get (Calendar.MONTH)+1;

int date=now.get(Calendar.DATE);

System.out.println("今天是"+year+"年"+month+"月"+date+"日");

int aaa;

int b1=0,b2=0,b3=0;

for(int i=0;i<30;i++)

{aaa=new Random().nextInt(3)+1; //产生1-3的随机数

System.out.println("aaa="+aaa);

if (aaa==1) b1++;

if (aaa==2) b2++;

if (aaa==3) b3++;

}

System.out.println("1的个数="+b1+";2的个数="+b2+";3的个数="+b3);

}

}

【思考问题】

①将数据或变量转成字符串有那些方法?

数值转换为字符串

public static String valueOf(Object obj)//obj可以是任何类型的数值型变量。

②将数值型字符串转成数值变量有哪些步骤和方法。

1.字符串转换为数值

(1) 字符串转换为整数

public static int parseInt(String s, int radix)//s是需要转换的字符串,radix 是转换后用什么进制表示,如10就是十进制,16就是十六进制。

(2) 字符串转换为浮点数

public static float parseFloat(String s)//s是需要转换的字符串

2.数值转换为字符串

public static String valueOf(Object obj)//obj可以是任何类型的数值型变量。

③注释掉main函数后面的throws Exception编译会发生什么错误?怎样处理使错误消失?

将上述注释的代码恢复即可。

④修改程序完成下面的要求:

◆从日历对象中读取当前的时、分、秒。

◆产生0~±10间的随机数。

4.main方法参数的使用。

进一步了解数值型字符串转换成数值变量的必要性和应用。该题通过从命令行输入两个整形数,在程序中计算两个数之积。

package maintest;

public class MainParaDemo

{public static void main(String args[])

{ int w=Integer.valueOf(args[0]).intValue();

int h=Integer.valueOf(args[1]).intValue();

System.out.println("两个数之积是:"+(w*h));

}

}

【思考问题】如何在执行程序时输入所要求的参数?

◆用JDK。经工作路径转到程序包maintest所在文件夹:

输入命令java MainParaDemo 40 30

运行结果:两个数之积:1200

截图如下:

◆用Eclipse。工程配置要进行修改。在源文件编辑界面通过Run As→ Run

Configurations…进入图6-1所示界面。点击第二个选项卡(Arguments),在

“program arguments”中输入所需参数,如图所示。注意参数间是一个空格。

(四)编程练习与设计

1. 设给定一组整型数组,求它们的平均值及最大值

代码为:

import java.util.Scanner;

public class Average {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner keyboard = new Scanner(System.in);

System.out.println("输入数组的长度:");

int n=keyboard.nextInt();

int[] c = new int[n];

System.out.println("输入数组的元素为:");

for(int i=0;i

c[i] = keyboard.nextInt();

}

double avg;

double sum=0;

int maxofn = Integer.MIN_VALUE;

for(int i=0;i

sum+=c[i];

if( c[i]>maxofn){

maxofn = c[i];

}

}

avg = sum/n;

System.out.println("输出该数组的平均值:"+avg);

System.out.println("该数组的最大值为:"+maxofn);

}

}

2. 创建一个Vector 对象v,先通过键盘为args[]输入两个分量,然后赋值给对象v,并通过直接方式为其分量赋值。

实验代码为:

import java.util.Vector;

import java.util.Scanner;

public class MyVector {

public static void main(String[] args) {

// TODO Auto-generated method stub

Vector v=new Vector(1,1);

args=new String[2];

Scanner keyboard = new Scanner(System.in);

System.out.print("输入第一个分量:");

args[0]=keyboard.next();

System.out.print("输入第二个分量:");

args[1]=keyboard.next();

v.addElement(args[0]);

v.addElement(args[1]);

v.addElement("12");

v.addElement("62");

System.out.println("向量为:"+v);

v.setElementAt("7",3);

System.out.println("向量为: "+v);

System.out.println( "向量元素的个数为:"+v.size());

System.out.println("201303011182 孟千");

}

}

3.编写一个java程序,完成以下功能:

(1) 声明一个名为s的字符串,并使它的内容为”Call me Ishmael.”;

(2) 打印整个字符串

(3) 使用length()方法打印字符串的长度

(4) 使用charAt()方法打印字符串的第一个字符

(5) 使用charAt()和length()方法打印字符串的最后一个字符

(6) 使用indexOf()方法和substring()方法打印字符串中的第一个单词

实验代码为

public class Ex4_3 {

public static void main(String[] args) {

// TODO Auto-generated method stub

String s = "Call me Ishmael.";

System.out.println(s);

System.out.println("字符串的长度为:"+s.length());

System.out.println("字符串的第一个字符为:"+s.charAt(0));

System.out.println("字符串的最后一个字符为:"+s.charAt(s.length()-1));

int n = s.indexOf(" ");

System.out.println("字符串中的第一个单词为:"+s.substring(0, n));

System.out.println("201303011182 孟千");

}

}

4. 使用Math类编写一个完整的程序。

实验代码如下:

public class Math {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

//abs(arg):返回arg绝对值,arg可以是:int,long,float,double.

double a = https://www.doczj.com/doc/0212444886.html,ng.Math.abs(-186.7);

System.out.println(a);

//ceil(double arg):返回>=arg的最小整数.

double b = https://www.doczj.com/doc/0212444886.html,ng.Math.ceil(79.3);

System.out.println(b);

//floor(double arg):返回<=arg最大整数.

double c = https://www.doczj.com/doc/0212444886.html,ng.Math.floor(30.9);

System.out.println(c);

//max(x,y):返回x和y中的最大值.

double d = https://www.doczj.com/doc/0212444886.html,ng.Math.max(a,b);

System.out.println(d);

//min(x,y):返回x和y中的最小值.

double e = https://www.doczj.com/doc/0212444886.html,ng.Math.min(b,c);

System.out.println(e);

//rint(double arg):返回最接近arg的整数值. 返回double

double f = https://www.doczj.com/doc/0212444886.html,ng.Math.rint(50.6);

System.out.println(f);

//round(arg):返回最接近arg的整数值.arg为double时返回long,为float时

返回int

double g = https://www.doczj.com/doc/0212444886.html,ng.Math.round(20.18);

System.out.println(g);

//返回一个介于0与1之间的伪随机数.大多数情况下适应Random类产生随机数.

double h = https://www.doczj.com/doc/0212444886.html,ng.Math.random();

System.out.println(h);

//sqrt(double arg):计算参数的平方根.返回类型为double型

double i = https://www.doczj.com/doc/0212444886.html,ng.Math.sqrt(80);

System.out.println(i);

//pow(double arg1,bouble arg2):计算arg1为底arg2为指数的幂返回类型为double型

double j = https://www.doczj.com/doc/0212444886.html,ng.Math.pow(3,4);

System.out.println(j);

}

}

四、思考问题

1.如何快速学习并使用各种类的API。

五:实验体会

通过本次上机实验,理解并掌握String类、StringBuffer类、StringTokenizer 类等,特别注意掌握字符串与变量之间的转换。也明白数值型字符串转成数值变量有哪些步骤和方法。另一方面了解java提供的常用类包,主要有系统类、包装类、数学类、日历类、随机类等,充分利用java资源,使编程更加快捷有效。从而以更高效的完成编程,掌握Java Application命令行参数的使用,自己对编程有了新的认识,也更加熟练。

字符和字符串类型

一、字符、字符串类型的使用 (一)字符类型 字符类型为由一个字符组成的字符常量或字符变量,字符常量定义: const 字符常量='字符'; 字符变量定义: Var 字符变量:char; 字符类型是一个有序类型, 字符的大小顺序按其ASCⅡ代码的大小而定,函数succ、pred、ord适用于字符类型,例如: 后继函数:succ('a')='b' 前继函数:pred('B')='A' 序号函数:ord('A')=65 【例1】按字母表顺序和逆序每隔一个字母打印,即打印出: a c e g I k m o q s u w y z x r v t p n l j h f d b 程序如下: program ex8_1; var letter:char; begin for letter:='a' to 'z' do if (ord(letter)-ord('a'))mod 2=0 then write(letter:3); writeln; for letter:='z' downto 'a' do if (ord(letter)-ord('z'))mod 2 =0 then write(letter:3); writeln; end. 分析:程序中,我们利用了字符类型是顺序类型这一特性,直接将字符类型变量作为循环变量,使程序处理起来比较直观。

(二)字符串类型 字符串是由字符组成的有穷序列,字符串类型定义: type <字符串类型标识符>=string[n]; var 字符串变量:字符串类型标识符; 其中:n是定义的字符串长度,必须是0~255之间的自然整数,第0号单元中存放串的实际长度,程序运行时由系统自动提供,第1~n号单元中存放串的字符,若将string[n]写成string,则默认n值为255。例如:type man=string[8]; line=string; var name:man; screenline:line; 另一种字符类型的定义方式为把类型说明的变量定义合并在一起。 例如:VAR name:STRING[8]; screenline:STRING; Turbo Pascal中,一个字符串中的字符可以通过其对应的下标灵活使用。 例如:var name:string; begin readln(nsme); for i:=1 to ord(name[0]) do writeln(name[i]); end. 语句writeln(name[i])输出name串中第i个字符。 【例2】求输入英文句子单词的平均长度 程序如下: program ex8_2; var

C语言课程设计报告---字符串处理

课程设计报告 课程设计题目:研究生初试录取 学生:俊 专业:计算机应用技术 班级: 1140302 指导教师:宋文琳 2012年 06 月 23日

目录 一)实验题目 (3) 二)实验目的 (3) 三)实验要求 (3) 四)实验思路 (4) 五)实验过程 (6) 六)实验调试和结果 (9) 七)实验小结 (13)

实验题目 字符串处理 (1)不使用系统库函数,编写多个函数实现; (2)定义字符数组存放字符串,从键盘输入; (3)调用不同的函数,实现字符串的连接、拷贝、比较、求字符串长度、对字符串字符进行排序、查找字符串中某个字符是否存在; (4)分别输出以上字符串处理的结果。 二)实验目的 本次课程设计的主要目的是综合运用所学的C语言知识解决一个比较实际的简单问题,侧重对数组、函数、指针、结构体等相关容的综合应用,使学生能进一步熟悉掌握C语言的基本语法,进一步提升编程能力并逐步培养编程思维,进而不断提高学生解决问题的能力,并为以后的语言学习打下良好的基础。三)实验要求 1. 学生独立完成课程设计的主要容; 2. 按照实验课表安排进行,不得无故旷课; 3.按照选题规则确定课程设计题目,不可随意更换,但可在完成规定的任务之后,根据 个人兴趣选做其它题目; 4.严格按照报告格式撰写课程设计报告; 5.程序实现方式可以自选,可采用指针、数组或其任意组合方式完成。

四)实验思路1)整体思路

五)实验过程 代码: #include void main() {void lianjie(char a[],char b[]); void kaobei(char a[],char b[]); void bijiao(char a[],char b[]); void qiuchangdu(char a[],char b[]); void paixu(char a[],char b[]); void chazhao(char a[],char b[],char c); char str1[50],str2[40]; char t; int i; printf("需要进行的操作:1.连接;2.拷贝;3.比较;4.求长度;5.排序;6.查找\n"); scanf("%d",&i); if(i==1) {printf("要连接的字符串1:"); scanf("%s",str1); printf("要连接的字符串2:"); scanf("%s",str2); lianjie(str1,str2);} else if(i==2) {printf("拷贝的字符串1:"); scanf("%s",str1); printf("要拷贝的字符串2:"); scanf("%s",str2); kaobei(str1,str2);} else if(i==3)

数据结构实验四字符串的应用

第四章字符串的应用 【实验目的】 1. 熟练掌握字符串的数据类型定义以及字符串的五种基本操作的定义,并能利用这些基本操作实现字符串的其他基本操作的方法。 2. 熟练掌握字符串串的定长顺序存储结构上实现字符串的各种操作的方法。 3. 理解字符串的堆分配存储表示以及在其上实现字符串操作的基本方法。 4. 熟练掌握串的基本操作类型的实现方法,其中文本模式匹配方法是一个难点,在掌握了BF算法的基础上理解改进的KMP算法。 5. 了解一般文字处理软件的设计方法。 第一节知识准备 一、有关串几个重要概念 1. 串(字符串):零个或多个字符组成的有限序列。一般记作s="a1a2 …an"(n≥0) 2. 长度:串中字符的数目 3. 空串:零个字符的串,其长度为零 4. 子串和主串:串中任意个连续的字符组成的子序列称为该串的子串;包含子串的串相应地称为主串,字符在序列中的序号为该字符在串中的位置。 5. 当两个串的长度相等,并且各个对应位置的字符都相等时称为两串相等。 6. 空格串:由一个或多个空格组成的串‘’,同空串是完全不同的。 二、串的抽象数据类型定义 ADT String{ 数据对象:D={ | ∈C haracterSet, i=1,2,...,n, n>=0} 数据关系:R1={< , >| , ∈D, i=2,...,n} 基本操作: Assign(&s,t) 将串t的值赋给串 s Create(&s,ss) 将串s的值设定为字符序列ss Equal(s,t) 判定串s和串t是否相等 Length(s) 求串s的长度 Concat(&s,t) 将串s和串t连接成一个串,结果存于s中

C字符串处理函数全

strcpy(char destination[], const char source[]); strcpy:将字符串source拷贝到字符串destination中。 strcpy函数应用举例 原型:strcpy(char destination[], const char source[]); 功能:将字符串source拷贝到字符串destination中 例程: #include #include void main(void) { char str1[10] = { "TsinghuaOK"}; char str2[10] = { "Computer"}; cout < #include void main(void) { char str1[10] = { "Tsinghua "}; char str2[10] = { "Computer"}; cout <

字符串类设计

华北科技学院计算机学院综合性实验 实验报告 课程名称___________ 《C++程序设计B》 ________ 实验学期2017 至2016学年第二学期 学生所在系部网络工程 ___________________ 年级2015 ___________ 专业班级网络B151 学生姓名_______________ 学号___________________ 任课教师_______________ 胡英___________________ 成绩评定: 1、类及类文件、函数文件设计:A( ),B( ),C( ),D( ),F() 2、程序结构合理,格式美观:A( ),B( ),C( ),D( ),F() 3、语法语义及算法准确:A( ),B( ),C( ),D( ),F() 4、实验结果正确,运行界面:A( ),B( ),C( ),D( ),F() 5、操作熟练,解析完整:A( ),B( ),C( ),D( ),F() 5、报告规范度:A( ),B( ),C( ),D( ),F() 实验成绩___________________________________________

计算机学院制 《C++程序设计》课程综合性实验报告 开课实验室:基础实验室三2018年6月5日

} 五、实验结果(运行界面)及测试数据分析 MyString1("Z00")调用构造函数MyString::MyString(char *str),MyString2(MyStringl) 调用复制构造函数MyString::MyString(const MyString &str) ,MyString3 调用构造函数MyString()。使用运算符重载函数>>输入字符串对MyString3重新赋值为hello。MyString3调用成员函数int length()求得字符串MyString3的长度。使用运算符重载函数=把MyString1的值赋给MyString3。使用运算符重载函数+把字符串MyString1 和MyString3进行连接。使用运算符重载函数>和<对字符串MyString1和MyString3 进行判断。使用运算符重载函数==对字符串MyString1和MyString2进行判断。 MyString3调用函数UprString()把字符串小写转换为大写。MyString1调用函数LwrStri ng()把字符串大写转换为小写。 六、实验总结 通过本学期的课程学习使我对C++程序设计有了初步的认识,也让我对面向对象 有了一个更深刻的理解。本系统虽然仍然存在着不足之处,但对于题目要求实现的功能均已实现。 源代码: #in clude

实验三 数组和字符串

实验三数组和字符串 一、实验目的 1.掌握Java中的数组定义、引用 2.掌握向量的基本概念和应用技术 3.掌握使用字符串String类处理字符串的方法 4.掌握使用字符串StringBuffer类处理字符串的方法 5.掌握Date类以及Calendar类的常用方法; 二、实验内容 1.使用https://www.doczj.com/doc/0212444886.html,ng.Math类,生成100 个100~999 之间的随机整数,找出他们之中的最大的和最小的,并统计随机产生的大于300 的整数个数。 package exercise; publicclass shiyan3_1 { publicstaticvoid main(String [] args) { int count=0; int max=0; int min=Integer.MIN_VALUE; int num[]=newint[100];//声明并创建一个具有100 个元素的整型数组对象num int i; for(i=1;i<=100;i++) { num[i-1]=100+(int)(Math.random()*899); System.out.print(num[i-1]+"\t");//随机产生一个100~999 之间的随机整数 if(i % 10 == 0) System.out.println();//输出当前产生的随机数,并一行输出10 个数 if(num[i-1]>max) max=num[i-1]; if(num[i-1]300) count++; } System.out.println("最大的随机整数是:"+max); System.out.println("最小的随机整数是:"+min); System.out.println("大于300 的整数个数是:"+count); } }

各种字符串处理函数示例(基本)

示例 1.字符串输出示例。 程序: #include void main(void) { char str[25]={"Welcome to our city!"}; puts(str); puts("Thank you!"); } 结果: 2.字符串输入实例。(注意比较gets与scanf和puts与printf的区别)程序: #include void main(main) { char str[20]; gets(str); puts(str); printf("*********\n"); scanf("%s",str); puts(str); } 结果: 3.测字符串长度函数strlen()的使用。 程序: #include #include void main(main) { char a[10]="program";

int x,y; x=strlen(a); y=strlen("abc13"); printf("%d\n%d\n\n",x,y); } 结果: 4.字符串连接函数的使用。 程序: #include #include void main(main) { char s1[20]="Hello",s2[6]="Word"; puts(s1); puts(s2); strcat(s1,s2); printf("%s\n",s1); } 结果: 修改后 程序: #include #include void main(main) { char s1[5]="Hello",s2[6]="Word"; puts(s1); puts(s2); strcat(s1,s2); printf("%s\n",s1); } 结果:

实验3MATLAB矩阵分析与处理和字符串操作实...

实验三 MATLAB 矩阵分析与处理、字符串操作 一、实验目的 1.掌握生成特殊矩阵的方法 2.熟练掌握矩阵的特殊操作及一些特殊函数 3.熟练掌握MATLAB 的字符串操作 4.掌握MATLAB 矩阵的关系运算及逻辑运算法则 二、实验内容 1.特殊矩阵分析与处理操作 常用的产生通用特殊矩阵的函数有:zeros( );ones( );eye( );rand( );randn( ). 下面建立随机矩阵。 (1) 在区间[20,50]内均匀分布的5阶随机矩阵。 (2) 均值为0.6、方差为0.1的5阶随机矩阵。 说明:产生(0 ,1)区间均匀分布随机矩阵使用rand 函数,假设得到了一组满 足(0,1)区间均匀分布的随机数x i ,则若想得到任意[a,b]区间上均匀分布的随机数,只需要用i i x a b a y )(-+=计算即可。产生均值为0、方差为1的标准正态分布随机矩阵使用randn 函数,假设已经得到了一组标准正态分布随机数x i ,如果想要更一般地得到均值为i i x y ,、σμσμ+=可用的随机数方差为2计算出来。针对本例,命令如下: x=20+(50-20)*rand(5) y=0.6+sqrt(0.1)*randn(5) 建立对角阵。 diag( )函数除了可以提取矩阵的对角线元素以外,还可以用来建立对角矩阵。 设V 为具有m 个元素的向量,diag(V)将产生一个m*m 对角矩阵,其主对角线元素即为向量V 的元素。例如: diag([1,2,-1,4])

ans= 40000 10000 20000 1 diag(V)函数也有另一种形式diag(V ,k),其功能是产生一个n*n(n=m+|k|)的对角矩阵,其第k 条对角线的元素即为向量V 的元素。例如: diag(1:3,-1) ans=03000 0200 0010 000 矩阵的旋转 函数rot90(A,k)表示将矩阵A 以90度为单位对矩阵按逆时针方向进行k 倍的旋转。 rem 与mod 函数的区别 练习: 1> 写出完成下列操作的命令。 (1)建立3阶单位矩阵A 。eye(3) (2)建立5*6随机矩阵A ,其元素为[100,200]范围内的随机整数。 A=100+(200-100)*rand(5,6) (3)产生均值为1,方差为0.2的500个正态分布的随机数。 B=1+sqrt(0.2)*randn(50,10) (4)产生和A 同样大小的零矩阵。 zeros(size(A)) (5)将矩阵A 主对角线的元素加30。 B=eye(5,6)*30 A+B (6)从矩阵A 提取主对角线元素,并以这些元素构成对角阵。 B=diag(diag(A)’) 注:转置是把列向量转变成行向量。 2> 先建立5*5的矩阵A ,然后将A 的第一行元素乘以1,第二行元素乘以2,…,第五行乘以5。(提示:用一个对角矩阵左乘一个矩阵时,相当于用对角阵的

shell处理字符串常用方法

Shell处理字符串常用方法 一、构造字符串 直接构造 STR_ZERO=hello STR_FIRST="i am a string" STR_SECOND='success' 重复多次 #repeat the first parm($1) by $2 times strRepeat() { local x=$2 if [ "$x" == "" ]; then x=0 fi local STR_TEMP="" while [ $x -ge 1 ]; do STR_TEMP=`printf "%s%s" "$STR_TEMP" "$1"` x=`expr $x - 1` done echo $STR_TEMP } 举例: STR_REPEAT=`strRepeat "$USER_NAME" 3` echo "repeat = $STR_REPEAT" 二、赋值与拷贝 直接赋值 与构造字符串一样 USER_NAME=terry 从变量赋值 ALIASE_NAME=$USER_NAME 三、联接 直接联接两个字符串 STR_TEMP=`printf "%s%s" "$STR_ZERO" "$USER_NAME"` 使用printf可以进行更复杂的联接

四、求长度 获取字符串变量的长度 方法1:$echo ${#string} 方法2:$expr length "$string" 方法3:$expr "$string" : ".*" 求字符数(char) COUNT_CHAR=`echo "$STR_FIRST" | wc -m` echo $COUNT_CHAR 求字节数(byte) COUNT_BYTE=`echo "$STR_FIRST" | wc -c` echo $COUNT_BYTE 求字数(word) COUNT_WORD=`echo "$STR_FIRST" | wc -w` echo $COUNT_WORD 五、比较 相等比较str1 = str2 不等比较str1 != str2 举例: if [ "$USER_NAME" = "terry" ]; then echo "I am terry" fi 小于比较 #return 0 if the two string is equal, return 1 if $1 < $2, else 2strCompare() { local x=0 if [ "$1" != "$2" ]; then x=2 localTEMP=`printf "%s\n%s" "$1" "$2"` local TEMP2=`(echo "$1"; echo "$2") |sort` if [ "$TEMP" = "$TEMP2" ]; then x=1 fi fi echo $x } 六、测试 判空-z str 判非空-n str 是否为数字 # return 0 if the string is num, otherwise 1 strIsNum() { local RET=1 if [ -n "$1" ]; then

windows中的字符串类型

Windows字符串类型 C++主要使用的是C-Style字符串,而M$在Windows中又增加了很多C-Style字符串的变体。这个一多嘛,就容易乱~ 所谓字符串,就是由字符组合而成,所以我们先来将将字符类型。 首先,存在两种最基本的字符类型:char和wchar_t。char大家都很熟悉了,我就跳过。至于wchar_t,是应用于UNICODE的宽字符,即一个字符2Bytes,16Bits。事实上,Windows 中利用 typedef unsigned short wchar_t 定义wchar_t 然后为了书写方便(MS我也没觉得有多大差别),M$又把那两个基本字符类型重新的给他typedef了一遍,即: typedef char CHAR typedef wchar_t WCHAR 为了使得兼容性更加,M$又定义了TCHAR数据类型: #ifdef UNIOCDE typedef WCHAR TCHAR #else typedef CHAR TCHAR #endif 这样,你不用关心是要使用ANSI字符串还是Unicode,编译器会自动根据你的OS来选择。 然后,M$又利用上面的几种基本数据类型,定义了一些字符串指针类型。 LPSTR和LPCSTR:LPSTR是指向以0结尾的ANSI字符串的指针,后者是const指针typedef CHAR* LPSTR typedef const CHAR* LPCSTR LPWSTR和LPCWSTR:LPWSTR是指向以0结尾的UNICODE字符串的指针,后者是const 指针 typedef WCHAR* LPWSTR typedef const WCHAR* LPCWSTR 同样,为了摆脱对ANSI还是UNICODE的选择麻烦,M$也增加了LPTSTR和LPCTSTR两个字符串指针类型。他们被如下定义: typedef TCHAR* LPTSTR #ifdef UNICODE typedef LPWSTR LPTSTR #else typedef LPSTR LPTSTR #endif /////////////////////////////////////

VB常用字符串操作函数解读

VB常用字符串操作函数2009/11/25 18:321. ASC(X,Chr(X:转换字符字符码[格式]: P=Asc(X 返回字符串X的第一个字符的字符码 P=Chr(X 返回字符码等于X的字符 [范例]:(1P=Chr(65 ‘ 输出字符A,因为A的ASCII码等于65 (2P=Asc(“A” ‘ 输出65 2. Len(X:计算字符串X的长度 [格式]: P=Len(X [说明]:空字符串长度为0,空格符也算一个字符,一个中文字虽然占用2 Bytes,但也算 一个字符。 [范例]: (1 令X=”” (空字符串 Len(X 输出结果为0 (2 令X=”abcd” Len(X 输出结果为4 (3 令X=”VB教程” Len(X 输出结果为4 3. Mid(X函数:读取字符串X中间的字符 [格式]: P=Mid(X,n 由X的第n个字符读起,读取后面的所有字符。 P=Mid(X,n,m 由X的第n个字符读起,读取后面的m个字符。 [范例]: (1 X=”abcdefg” P=Mid(X,5 结果为:P=”efg” (2 X=”abcdefg” P=Mid(X,2,4 结果为 P=”bcde” 4. R eplace: 将字符串中的某些特定字符串替换为其他字符串 [格式]: P=Replace(X,S,R [说明]:将字符串X中的字符串S替换为字符串R,然后返回。[范例]:X=”VB is very good” P=Replace(X,good,nice 输出结果为:P=”VB is very nice” 5. StrReverse:反转字符串 [格式]: P=StrReverse(X [说明]:返回X参数反转后的字符串 [范例]:(1)X=”abc” P=StrReverse(X 输出结果:P=”cba” 6. Ucase(X,Lcase(X:转换英文字母的大小写 [格式]:P=Lcase(X ‘ 将X字符串中的大写字母转换成小写P=Ucase(X ‘ 将X字符串中的小写字母转换成大写 [说明]:除了英文字母外,其他字符或中文字都不会受到影响。 [范例]:(1)令X=”VB and VC” 则Lcase(X的结果为”vb and vc”,Ucase(X的结果为”VB AND VC” 7. InStr函数:寻找字符串 [格式]: P=InStr(X,Y 从X第一个字符起找出Y出现的位置 P=InStr(n,X,Y 从X第n个字符起找出Y出现的位置 [说明]:(1)若在X中找到Y,则返回值是Y第一个字符出现在X中的位置。(2) InStr(X,Y相当于 InStr(1,X,Y。(3)若字符串长度,或X为空字符串,或在X中找不到Y,则都 返回0。(4)若Y为空字符串,则返回0。 ---------------------------------------------------------------------------------------------- mid(字符串,从第几个开始,长度 ByRef 在[字符串]中[从第几个开始]取出[长度个字符串] 例如 mid("小欣无敌",1,3 则返回 "小欣无" instr(从第几个开始,字符串1,字符串2 ByVal 从规定的位置开始查找,返回字符

字符串类数据列类型

字符串类数据列类型 字符串可以用来表示任何一种值,所以它是最基本的类型之一。我们可以用字符串类型来存储图象或声音之类的二进制数据,也可存储用gzip压缩的数据。下表介绍了各种字符串类型:Table 1.3. 字符串类数据列类型 类型长度占用存储空间CHAR[(M)]M字节M字节VARCHAR[(M)]M字节L+1字节TINYBLOD,TINYTEXT2^8-1字节L+1字节BLOB,TEXT2^16-1字节L+2MEDIUMBLOB,MEDIUMTEXT2^24-1字节L+3LONGBLOB,LONGTEXT2^32-1字节L+4ENUM('value1','value2',...)65535个成员1或2字节SET('value1','value2',...)64个成员1,2,3,4或8字节 L+1、L+2是表示数据列是可变长度的,它占用的空间会根据数据行的增减面则改变。数据行的总长度取决于存放在这些数据列里的数据值的长度。L+1或L+2里多出来的字节是用来保存数据值的长度的。在对长度可变的数据进行处理时,MySQL要把数据内容和数据长度都保存起来。 如果把超出字符串长度的数据放到字符类数据列中,MySQL会自动进行截短处理。 ENUM和SET类型的数据列定义里有一个列表,列表里的元素就是该数据列的合法取值。如果试图把一个没有在列表里的值放到数据列里,它会被转换为空字符串(“”)。 字符串类型的值被保存为一组连续的字节序列,并会根据它们容纳的是二进制字符串还是非二进制字符而被区别对待为字节或者字符: 二进制字符串被视为一个连续的字节序列,与字符集无关。MySQL把BLOB数据列和带BINARY属性的CHAR和VARCHAR数据列里的数据当作二进制值。 非二进制字符串被视为一个连续排列的字符序列。与字符集有关。MySQL把TEXT列与不带BINARY属性的CHAR和VARCHAR数据列里的数据当作二进制值对待。 在MySQL4.1以后的版本中,不同的数据列可以使用不同的字符集。在MySQL4.1版本以前,MySQL用服务器的字符集作为默认字符集。 非二进制字符串,即我们通常所说的字符串,是按字符在字符集中先后次序进行比较和排序的。而二进制字符串因为与字符集无关,所以不以字符顺序排序,而是以字节的二进制值作为比较和排序的依据。下面介绍两种字符串的比较方式: 二进制字符串的比较方式是一个字节一个字节进行的,比较的依据是两个字节的二进制值。也就是说它是区分大小写的,因为同一个字母的大小写的数值编码是不一样的。 非二进制字符串的比较方式是一个字符一个字符进行的,比较的依据是两个字符在字符集中的先后顺序。在大多数字符集中,同一个字母的大小写往往有着相同的先后顺序,所以它不区分大小写。 二进制字符串与字符集无关,所以无论按字符计算还是按字节计算,二进制字符串的长度都是一样的。所以VARCHAR(20)并不表示它最多能容纳20个字符,而是表示它最多只能容纳可以用20个字节表示出来的字符。对于单字节字符集,每个字符只占用一个字节,所以这两者的长度是一样的,但对于多字节字符集,它能容纳的字符个数肯定少于20个。 1.2.2.1. CHAR和VARCHAR CHAR和VARCHAR是最常用的两种字符串类型,它们之间的区别是: CHAR是固定长度的,每个值占用相同的字节,不够的位数MySQL会在它的右边用空格字符补足。 VARCHAR是一种可变长度的类型,每个值占用其刚好的字节数再加上一个用来记录其长度的字节即L+1字节。 CHAR(0)和VARCHAR(0)都是合法的。VARCHAR(0)是从MySQL4.0.2版开始的。它们的作用是作为占位符或用来表示各种on/off开关值。

C#中字符串常用的处理方法

* 计算字符串的长度* string myString = "This is a test!"; Console.WriteLine("Text is :{0}",myString); Console.WriteLine("Text's long is :{0}",myString.Length); * 转换大小写* myString = myString.ToLower(); //所有字符转换成小写 myString = myString.ToUpper(); //所有字符转换成大写 * 删除前后空格* myString = myString.Trim(); //同时删除字符串前后的空格 char[] trimChars = {' ','e','s'}; //准备删除的字符 myString = myString.Trim(trimChars); //删除所有指定字符 myString = myString.TrimEnd(); //删除字符串后的空格 myString = myString.TrimStart(); //删除字符串前的空格 * 添加空格* myString = myString.PadRight(14,' '); //当字符串长度不够14位时,在他的右边用指定字符填充 myString = myString.PadLeft(14,' '); //当字符串长度不够14位时,在他的左边用指定字符填充* 拆分字符串* string[] nStrs = myString.Split(' ',3); //按照空格进行拆分,并且返回前三个字符串 * 获取子字符串* string a = myString.Substring(2,2); //从myString字符串的第三位开始获取两个字符,因为索引 起始位是0 * 替换字符串中的字符* string a = myString.Replace("i","o"); //将这个字符串中的所有“i”替换成“o” C#中字符串实际上是Char变量的只读数组。可以用下面的方法访问字符串中每一个字符,但是不能修 改他们。 string myString = "This is a test!"; foreach (char myChar in myString) { Console.Write("{0}",myChar); }

20-字符数组与字符串类型.

字符数组与字符串类型 字符型变量:VAR CH :CHAR ; 一、字符数组:数组基类型(元素的类型为字符型。 VAR A:ARRAY [ 1. . N ] OF CHAR ; 输入、输出也与普通数组一样,只能用循环结构,逐个元素地给它赋值,即: FOR I:= 1 TO N DO READ(A[ I ] ; 或者: A[I]:=‘ X ’ ; 不能用:A :=‘ IT IS A PEN ’ ; 例一:判断从键盘输入的字符串是否为回文(从左到右和从右到左读一串字符的值是一样的, 如 ABCDCBA , 1234321, 11, 1 ,串长 < 100 ,且以点号‘. ’结束。 2000年竞赛题:判断一个数是否为回文数。 VAR LETTER:ARRAY [ 1. . 100 ] OF CHAR ; I, J :0. . 100 ; CH:CHAR ; BEGIN WRITELN(‘ INPUT A STRING :’ ; I := O ; READ (CH ; WHILE CH < > ‘. ’ DO BEGIN

I:=I+1 ; LETTER[ I ] := CH ; READ (CH ; END ; J :=1 ; { I 指向数组的尾部, J 指向数组的头部 ,逐个比较 } WHILE (J < I AND (LETTER[ J ]= LETTER[ I ] DO BEGIN I:= I – 1 ; J :=J + 1 END ; IF J > = I THEN WRITELN(‘ YES ’ ELSE WRITELN(‘ NO ’ ; END . 二、字符串类型:针对 TURBO PASCAL 1、字符串常量:CONST STR=‘ THIS IS A BOOK。’ ; 我们经常在 WRITE 语句中用到字符串,也可以 WRITE (STR ;语句输出 STR 的值。 2、字符串类型:也是一种构造类型。 定义形式:TYPE 字符串类型名 = STRING[ N ];

实验四 数组及其字符串的处理

实验四数组及其字符串的处理 1.输入一串英文字母,统计每个字母(不区分大小写)出现的次数。(输 出统计结果时一律显示为小写字母) 如输入:Good 则输出:字母d有1个 字母g有1个 字母o有2个 请根据提示填空,使程序实现相应功能。 #include main() { char ch[10000]; //用于保存输入的字母串 int nnum[26]=【1】;/* 赋初值,使各元素值为0 nnum用于存储各字母出现的次数, 因字母表共有26个字母,因此元素个数为26 */ int i,j; printf("请输入一串字母\n"); scanf("%s",【2】);//读取字符串 i=0;//变量i用于遍历整个字符串各元素,初值为0,表示从字符数组首元素开始 while(【3】) //依次读取各元素,直至遇到字符串结束符’\0’ { j=(ch[i]>=65&&ch[i]<=90)?ch[i]-65:ch[i]-97; /*若输入为字母,则用j 保存其在字母表中的位 次*/ if (【4】)nnum[j]++;//若j值不超限,则将该字母累计数加1 【5】;// 改变i值,换至下一个元素 } for(i=0;i<26;i++) if(nnum[i]!=0) printf("字母%c有%d个\n",97+i,【6】); //按题目要求输出结果 return; } 编程题 2.输入10个整数存入数组,找出其中的最大数及其位置。 (位置从0开始编号)

3.求裴波那契数列(1 1 2 3 5 8 13 21 34……)的前18项。 4.求字符串长度(实现strlen 函数的功能) 提示:可参考第1题。 5.输入一个5*5的矩阵(#define N 5),求 (1)所有元素的和 (2)主对角线元素之和 (3)最大值及最小值所在位置 #include main() { double mat[5][5]; int i,j; 【此处补充定义其它所需变量】 for(i=0;i<5;i++) for (j=0;j<5;j++) scanf("%lf",&mat[i][j]); 【完成其余代码,实现该题(1)(2)(3)的功能】 return; }

字符串的处理:Flash处理字符串的常用方法

字符串的处理:Flash处理字符串的常用方法 使用字符串类型的常见方法是将一个字符串指定给一个变量,然后对变量进行各种处理操作。 一、字符串的定义 定义字符串的常用方法如下: //定义一个空字符串 var str:String=” ”; //定义一个字符串并赋值 var str:String=”自由与梦想”; 有些特殊字符需要通过转义字符来表示,比如退格符、换行符、单引号、双引号等。常用转义字符如下: \b 退格符 \f 换页符 \n 换行符 \r 回车 \t 制表符 二、提取子字符串 字符串中每一个字符都有一个对应的位置,即索引。第一个字符的索引是0,往后一次递增。常用的有三种方法可以从一个字符串中提取子字符串,slice(start[,end]),substr(start[,length])和substring(start[,end])。start是起始位置的索引,end是结束位置的索引,length是长度。 我们定义一个字符串: var str:String="自由与梦想! ";

各字符的位置分别是自:0 由:1 与:2 梦:3 想:4 !:5 1.slice(start[,end]) slice()的功能是提取从start开始到end之前的字符串,end如果不写则提取到最后一个字符。start可以是负数,表示从字符串后边某一个字符开始提取。end必须是一个正数。 trace(str.slice(0,2));//输出为“自由” trace(str.slice(0));//输出为“自由与梦想!” trace(str.slice(-3,5));//输出为“梦想” 2.substr(start[,length]) substr ()的功能是提取从start开始长度为length的字符串,length如果不写则提取到最后一个字符。start可以是负数,表示从字符串后边某一个字符开始提取。length必须是一个正数。 trace(str. substr (0,2));//输出为“自由” trace(str. substr (0));//输出为“自由与梦想!” trace(str. substr (-3,2));//输出为“梦想” 3.substring(start[,end]) substring和slice的功能几乎是一样的,唯一的区别是slice的start可以是负数,而substring的start只能是正数。 三、字符串的拆分和合并 前边我们谈到了,数组中的元素也有索引,也是表示位置的,也是从0开始计数的。这一点和字符串非常类似。他们之间的联系还不止这些。字符串和数组可以很方便地相互转换。这也是我们常常用到的一个功能。 1.字符串的拆分

C语言基本类型字符型(char)用法介绍

C语言基本类型:字符型(char)用法介绍 1.字符型(char)简介 字符型(char)用于储存字符(character),如英文字母或标点。严格来说,char 其实也是整数类型(integer type),因为char 类型储存的实际上是整数,而不是字符。计算机使用特定的整数编码来表示特定的字符。美国普遍使用的编码是ASCII(American Standard Code for Information Interchange 美国信息交换标准编码)。例如:ASCII 使用65 来代表大写字母A,因此存储字母A 实际上存储的是整数65。注意:许多IBM大型机使用另一种编码——EBCDIC(Extended Binary-Coded Decimal Interchange Code 扩充的二进制编码的十进制交换码);不同国家的计算机使用的编码可能完全不同。 ASCII 的范围是0 到127,故而7 位(bit)就足以表示全部ASCII。char 一般占用8 位内存单元,表示ASCII绰绰有余。许多系统都提供扩展ASCII(Extended ASCII),并且所需空间仍然在8 位以内。注意,不同的系统提供的扩展ASCII 的编码方式可能有所不同! 许多字符集超出了8 位所能表示的范围(例如汉字字符集),使用这种字符集作为基本字符集的系统中,char 可能是16 位的,甚至可能是32 位的。总之,C 保证char 占用空间的大小足以储存系统所用的基本字符集的编码。C 语言定义一个字节(byte)的位数为char 的位数,所以一个字节可能是16 位,也可能是32 位,而不仅仅限于8 位。 2. 声明字符型变量 字符型变量的声明方式和其它类型变量的声明方式一样: char good; char better, best; 以上代码声明了三个字符型变量:good、better,和best。 3. 字符常量与初始化 我们可以使用以下语句来初始化字符型变量: char ch = 'A'; 这个语句把ch 的值初始化为 A 的编码值。在这个语句中,'A' 是字符常量。C 语言中,使用单引号把字符引起来就构成字符常量。我们来看另外一个例子: char fail; /* 声明一个字符型变量*/ fail = 'F'; /* 正确*/ fail = "F"; /* 错!"F" 是字符串字面量*/

相关主题
文本预览
相关文档 最新文档