也许是对C语言撞我的不熟练,也许是集中语言搞混淆了,知道java中有Sting类,也感觉C中也会有string类型,其实不然。
一直以来对这个问题都不是很清楚:只是知道C语言里有<string.h>这个头文件,所以就想当然的认为C语言里有string这个 类型,可以通过下面这种形式来声明string的变量 string aString; 后来编程时发现通不过编译,又查资料才知道原来C语言里压根就没有string这个类型,所以字符串都是通过char数组来存储的, 而<string.h>这个头文件里声明的函数原型也全是针对char数组的种种操作。
直到C++中才出现了string这个类(注意是类, 不是类型
)。这是网上我找到的比较满意的答复:
" C语言中有string类型变量吗"
这里的 string 有 二 义性。
(1) 如果 string 是普通词汇,“C语言中有字符类型变量吗”, 答,有。 字符类型 用 char 声明。
char str[]="This is a string";
(2) 如果 string 是专用词汇,“C语言中有string类型变量吗”,答,没有。string 是 类(C++中),是 class, 不是 类型,不是 type.
类 的 声明 用 构造函数初始化,或 new 声明。
类 -- C++, 不是 C
转自:
http://blog.sina.com.cn/s/blog_4a1648c50100qphh.html
也许是对C语言撞我的不熟练,也许是集中语言搞混淆了,知道java中有Sting类,也感觉C中也会有string类型,其实不然。一直以来对这个问题都不是很清楚:只是知道C语言里有这个头文件,所以就想当然的认为C语言里有string这个 类型,可以通过下面这种形式来声明string的变量 string aString; 后来编程时发现通不过编译,又查资料才知道原来C语言里压根就没有string
C++
语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者
C++
,为什么?原因众多,其
中
之一就是C/
C++
的文本处理功能太麻烦,用起来很不方便。以前没有接触过其他语言时,每当别人这么说,我总是不屑一顾,认为他们根本就没有领会
C++
的精华,或者不太懂
C++
,现在我接触 perl, php, 和Shell脚本以后,开始理解了以前为什么有人说
C++
文本处理不方便了。
总之,有了
string
后,
C++
的字符文本处理功能总算得到了一定补充,加上配合STL其他容器使用,其在文本处理上的功能已经与perl, shell, php的距离缩小很多了。 因此掌握
string
会让你的
C语言
中
没有
string
类型。
string
类型是
C++
、java、VB等编程语言
中
的。 在java、C#
中
,
String
类是不可变的,对
String
类的任何改变,都是返回一个新的
String
类对象。
string
是
C++
标准程序库
中
的一个头文件,定义了
C++
标准
中
的字符串的基本模板类std::basic_
string
及相关的模板类实例。
而在C语言
中
,C语言
中
没有字符串类型,字符串是存放在字符型数组
中
的,将字符串作为字符数组来处理的。为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”,以字符’
##C语言
中
没有
string
类型##
#include<stdio.h> #include<stdlib.h> int main(int argc, char *argv[]) { char c[][5] = {"abc","haha","no"}; for (int i=0; i<3; i++) { printf("%s\n",c[i]); } return 0; }
一直以来对这个问题都不是很清楚:只是知道C语言里有<
string
.h这个头文件,所以就想当然的认为C语
在Java编程语言
中
,char和
String
都是用来存储文本数据的数据类型,但它们有一些区别。
1. char是一个基本数据类型,用来存储单个字符,而
String
是一个类,用来表示一串字符序列。
2. char类型的值可以用单引号括起来,例如'c',而
String
类型的值必须用双引号括起来,例如"Hello, world!"。
3. char类型的值只能存储一个字符,而
String
类型的值可以包含多个字符。
4. char类型的值可以直接比较,例如'c' == 'd',而
String
类型的值必须使用equals()方法进行比较,例如"hello".equals("world")。
因此,char和
String
在用途上有所不同,char主要用于存储单个字符,例如用于表示一个字母、数字或符号,而
String
则用于存储一串字符序列,例如用于表示一个单词、句子或文本段落。