也许是对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
   
   则用于存储一串字符序列,例如用于表示一个单词、句子或文本段落。