zoukankan      html  css  js  c++  java
  • 关于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.

  • 相关阅读:
    POJ 2486 Apple Tree(树形DP)
    HDOJ 4276 鬼吹灯 (树形DP)
    POJ 2923 Relocation(状态压缩DP)
    Vue,事件的修饰符
    Vye,v-if 和 v-show 显示隐藏的使用
    Vue,for循环的key值绑定
    Vue,v-for循环遍历方式
    Vue-class样式,style样式
    Vue,v-model双向事件绑定 及简易计算器练习
    uni-app 生命周期(下拉已解决)
  • 原文地址:https://www.cnblogs.com/limera/p/5468551.html
Copyright © 2011-2022 走看看