【问题标题】:Variables C String string.h useage变量 C 字符串 string.h 用法
【发布时间】:2013-11-23 13:47:32
【问题描述】:

您好,我刚从 c 和 string.h (strings.h?) 开始,我找不到太多关于它的教程,所以对我来说还有一些问题:

所以直到现在我都在使用

char name[10];

例如,有没有办法使用like

string name

将变量作为字符串?

最后我想做一些类似的事情

int main (){
    string name;

    puts("name?");
    scanf("%s",name);
    printf("%s",filname);

}

【问题讨论】:

    标签: c string variables c-strings


    【解决方案1】:

    在 C 中没有像字符串这样的东西

    你可以做的最好的声明字符串是这样的:

    char greeting[] = "Hello";
    

    或者像这样:

    char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
    

    看看这个tutorial

    C语言中的字符串其实是一维的 以空字符 '\0' 终止的字符数组。因此 以 null 结尾的字符串包含组成 字符串后跟一个空值。

    【讨论】:

      【解决方案2】:

      C 中没有字符串。本质上,C 中的字符串只是一个字符数组。 您可以使用char*,它是一个指向char 变量的指针。我不知道您对 C 指针了解多少,但是当您执行类似的操作时 int a[10] 这是一个数组声明,指向整数的指针保存为变量a。因此,如果您使用 char* 作为指向 char 的指针,那么在 chars 中也是一样的,您有一个没有默认大小的 char 数组。但是在使用指针时要小心,您可能会遇到很多运行时错误,因此在编写涉及指针的代码时要小心。

      【讨论】:

        【解决方案3】:

        不,C 中没有内置动态分配的字符串类型。提供此类字符串类的库有数百个,如果您需要一个,但至于 scanf 等标准库函数,您需要弄清楚提前设置最大尺寸(或使用较低级别的函数)。

        【讨论】:

          【解决方案4】:

          在c中没有称为字符串的数据类型。字符数组是字符串,您可以按如下方式使用它。

          char s[10];
          scanf("%s",s);
          printf(s);
          

          您会发现这些函数很有用,它们位于 string.h 中

          strlen(s) 给出字符串长度

          strcat(s1,s2) 将 s2 连接或连接到 s1

          strcpy(s1,s2) 将 s2 复制到 s1

          【讨论】:

            【解决方案5】:

            看看字符串引用(c++):

            http://www.cplusplus.com/reference/string/string/

            【讨论】:

            • 问题是关于 C,不是 C++。
            【解决方案6】:

            C 没有类,而 std::string 是 c++ 中的一个类,您可以通过 The C String Library 访问所有 c-string 函数

            【讨论】:

              【解决方案7】:

              他不能这样做

               #include <string.h>
              

              【讨论】:

              • 我建议在您的计算机上搜索string.h 并阅读内容。我做到了,但我不相信......
              猜你喜欢
              • 2014-08-28
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2022-06-15
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多