您的位置:

c语言string类型的数组,c语言定义string数组

本文目录一览:

C语言 string数组

c字符串的长度需要再加上一个0位置的。读取到了字符串结尾的0才会当作一个完整的字符串.

你这个字符串才分配了6个字节,spring和summer显然都越界了。从season[1]开始的话,只有到fall后才能读取到0。

|s|p|r|i|n|g|s|u|m|m|e|r|f|a|l|l|\0\|\0|w|i|n|t|e|r|

解决方法是:char season[][7]

跪求答案 C语言中 string 数组的问题

恩,出错原因跟printf有关。

改成:

printf("%s\n",key[0].c_str()); 就可以了。

因为printf的形式是:printf(const char *, ...)。注意第二个参数是"..."。...不是省略号的意思,它是C/C++的一种关键字,表示接受任意数量和任意类型的参数。也就说,它不会做隐式类型转换。

回到你的调用:printf("%s\n", key[0])。%s表示后面传入的参数应该是一个const char *类型,但是你传入的是string类型,所以出错了。把key[0]改成key[0].c_str()就可以了。c_str()返回的是一个const char *类型。

C语言中有string吗?

C语言中没有string类型。

string类型是 C++、java、VB等编程语言中的。 在java、C#中,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。string 是C++标准程序库中的一个头文件,定义了C++标准中的字符串的基本模板类std::basic_string及相关的模板类实例。

而在C语言中,C语言中没有字符串类型,字符串是存放在字符型数组中的,将字符串作为字符数组来处理的。为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”,以字符'\0'作为结束标志 。

扩展资料:

C++中string的使用:

其中的string是以char作为模板参数的模板类实例,把字符串的内存管理责任由string负责而不是由编程者负责,大大减轻了C语言风格的字符串的麻烦。std::basic_string提供了大量的字符串操作函数,如比较、连接、搜索、替换、获得子串等。并可与C语言风格字符串双向转换。

字符串在C语言中的使用:

字符串常量初始化数组。如:char c[ ]={‘c’,‘ ’,‘p’,‘r’,‘o','g','r','a','m'};可写为:char c[ ]={"C program"}; 或去掉{}写为:char c[ ]="C program"。

参考资料来源:百度百科-string类

参考资料来源:百度百科-字符数组