c++中如何定义一个字符串类型的变量
一般的方法就是和C语言中的一样,但是C语言中没有关于字符串的定义,在C中要定义字符串必须使用数组或者指针,如 char a[10];或者 char *a = “sfg”;但在C++中有一种更简单的方法,那就是string类, 可直接定义字符串, 例如string s("fsdfsdafs"); 而且他的好处是字符串 的长度是可变的,关于string类,里面还有一些与字符串相关的函数,很实用.想深入了解,可以到网上下载.
string变量是什么意思
string
是一个字符串类型,定义的变量是字符串
比如string
s;s就表示一个字符串,而string
str[30]则表示一个字符串数组,里面存放的都是字符串。string变量可以直接执行加减运算,赋值,比较等
c语言中,怎么样定义一个字符串变量
1、定义变量字符串。
char str[200];
定义一个长度最大为200字符的字符串。
2、定义常量字符串。
由于常量字符串存储在常量空间中,所以只需要定义一个指针,指向该地址即可。如char *s = "test string"。
拓展资料
c语言:
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。
目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
String型变量的定义与引用?
大家都在讲, 在Java中,变量是按引用传递,除了基本数据类型和String。基本数据类型没有什么可讲的,那么String到底有什么特殊的地方。
提到String,就得提StringBuffer,下面通过几个例子来说明他们的区别。
public class Test {
public static void main(String[] args) {
String A="aaa";
String B="bbb";
System.out.println(A.equals(B));
System.out.println(A==B);
System.out.println(A.hashCode());
System.out.println(B.hashCode());
B=A;
System.out.println(A.toString().equals(B.toString()));
System.out.println(A==B);
System.out.println(A.hashCode());
System.out.println(B.hashCode());
}
}
输出结果为:
false
false
96321
97314
true
true
96321
96321
大家都应该能预测到这个结果,因为我们把A赋值给了B。
让我们稍微改动一下,用B="aaa"代替B=A。
public class Test {
public static void main(String[] args) {
String A="aaa";
String B="bbb";
System.out.println(A.equals(B));
System.out.println(A==B);
System.out.println(A.hashCode());
System.out.println(B.hashCode());
B="aaa";
System.out.println(A.toString().equals(B.toString()));
System.out.println(A==B);
System.out.println(A.hashCode());
System.out.println(B.hashCode());
}
}
再来看输出结果,
false
false
96321
97314
true
true
96321
96321
有些想不到吧,和B=A是一样的。再做一下改动,把B="aaa"改成B="aa“+”a",
public class Test {
public static void main(String[] args) {
String A="aaa";
String B="bbb";
System.out.println(A.equals(B));
System.out.println(A==B);
System.out.println(A.hashCode());
System.out.println(B.hashCode());
B="aa"+"a";
System.out.println(A.toString().equals(B.toString()));
System.out.println(A==B);
System.out.println(A.hashCode());
System.out.println(B.hashCode());
}
}
结果仍然是,
false
false
96321
97314
true
true
96321
96321
看到了吧,这就是String和其他对象类型不一样的地方。不管你怎么定义或赋值,只要字符串变量的内容是相同的,他们指向的就是同一个字符串对象。
比如上面的例子,不管B的值是从A赋过来的,还是自己定义的,只要他的值是‘aaa’,他和A指向的就是同一个对象。
这样做的好处嘛,我只想到一点儿,节省资源。比如你有10个变量的值都是'aaa',那么这10个变量指向的是同一个对象,而不是10个对象。
再来看看StringBuffer,差不多的一个例子,
public class Test {
public static void main(String[] args) {
StringBuffer A=new StringBuffer("aaa");
StringBuffer B=new StringBuffer("bbb");
System.out.println(A.equals(B));
System.out.println(A==B);
System.out.println(A.hashCode());
System.out.println(B.hashCode());
B=A;
System.out.println(A.toString().equals(B.toString()));
System.out.println(A==B);
System.out.println(A.hashCode());
System.out.println(B.hashCode());
}
}
输出结果,
false
false
3526198
7699183
true
true
3526198
3526198
稍微改动一下,B=A替换为B=new StringBuffer("aaa"),
public class Test {
public static void main(String[] args) {
//(Man.getMan()).printName();
//System.out.println((Man.getMan()));
StringBuffer A=new StringBuffer("aaa");
StringBuffer B=new StringBuffer("bbb");
System.out.println(A.equals(B));
System.out.println(A==B);
System.out.println(A.hashCode());
System.out.println(B.hashCode());
B=new StringBuffer("aaa");
System.out.println(A.toString().equals(B.toString()));
System.out.println(A==B);
System.out.println(A.hashCode());
System.out.println(B.hashCode());
}
}
输出结果为,
false
false
3526198
7699183
true
false
3526198
14285251
怎么样,看到StringBuffer和String是不一样的啦吧,虽然A和B的值相同,但是指向的是不同的对象。StringBuffer和其他对象类型一样,是按引用传递的。
String和StringBuffer的其他区别:
1. StirngBuffer是可以变话的,如果改变了StringBuffer变量的长度或内容,不会改变对这个对象的引用。
2. String是固定的,如果改变了String变量的长度或内容,就会新建一个String对象,原来的String变量会指向新的String对象。
java 如何定义字符串变量
一、定义字符串
直接定义字符串是指使用双引号表示字符串中的内容,例如"Hello Java"、"Java 编程"等。具体方
法是用字符串常量直接初始化一个 String 对象,示例如下:
String str="Hello Java"; String str; str="Heilo Java";
二、用 String 类定义
1. String() 初始化一个新创建的 String 对象,表示一个空字符序列。
2. String(String original)
初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列。换句话说,新创建的字符串是该参数字符串的副本。
例如:
String str1=new String("Hello Java");
String str2=new String(str1);
3、String(char[ ]value)
分配一个新的字符串,将参数中的字符数组元素全部变为字符串。该字符数组的内容已被复制,后
续对字符数组的修改不会影响新创建的字符串。
例如:
char a[]={'H','e','l','l','0'};
String sChar=new String(a);a[1]='s';
4、String(char[] value,int offset,int count)
分配一个新的 String,它包含来自该字符数组参数一个子数组的字符。offset 参数是子数组第一个字符的索引,count 参数指定子数组的长度。
该子数组的内容已被赋值,后续对字符数组的修改不会影响新创建的字符串。
例如:
char a[]={'H','e','l','l','o'};
String sChar=new String(a,1,4);
a[1]='s';
扩展资料:
编程工具:
Eclipse:一个开放源代码的、基于Java的可扩展开发平台 。
NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用。
IntelliJ IDEA:在代码自动提示、代码分析等方面的具有很好的功能。
MyEclipse:由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境 。
EditPlus:如果正确配置Java的编译器“Javac”以及解释器“Java”后,可直接使用EditPlus编译执行Java程序 。
参考资料:百度百科-java
java 中string定义一个对象
定义一个string类型的变量有两种方式:
string name= "tom ";
string name =new string( "tom ")
使用第一种方式的时候,就使用了串池,
使用第二中方式的时候,就是一种普通的声明对象的方式
如果你使用了第一种方式,那么当你在声明一个内容也是 "tom "的string时,它将使用串池里原来的那个内存,而不会重新分配内存,也就是说,string saname= "tom ",将会指向同一块内存
另外关于string类型是不可改变的问题:
string类型是不可改变的,也就是说,当你想改变一个string对象的时候,比如name= "madding "
那么虚拟机不会改变原来的对象,而是生成一个新的string对象,然后让name去指向它,如果原来的那个 "tom "没有任何对象去引用它,虚拟机的垃圾回收机制将接收它。