• 关于C语言中有string类型吗?


    一、问题来源

       今天在VS2010平台上,尝试采用scanf()

    string word;

    scanf("%s",&word);

    然后发现错误,输出采用

    printf("%s ",word);

    发现也不行,然后转换成cin和cout就OK,于是怀疑是不是%s出了问题,果然是这样。

    因为在C中的字符串是存储在char数组中,是一个基本类型的组合,但是string则是C++中的封装好的类。

    所以输出可以采用

    printf("%s ",word.c_str());

    但是感觉输入是没得救啊!

    2.网上解答(来源于百度知道)

    一直以来对这个问题都不是很清楚:只是知道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 是 类,是 class, 不是类型,不是 type.

  • 相关阅读:
    Python的条件判断和循环
    Python分支和循环结构的练习
    Python的变量和运算符
    Python简介
    Git的使用及网络编程多线程多进程
    函数面向对象编程及文件的读取
    函数模块字符串列表
    python变量运算符分支结构循环结构及例题
    集合
    三级菜单
  • 原文地址:https://www.cnblogs.com/limera/p/5468551.html
Copyright © 2020-2023  润新知