C语言中有string吗?

   更新日期:2024.05.30

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类

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



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

C语言提供了丰富的字符串处理函数, 大致可分为字符串的输入、输出、合并、修改、比较、转换、复制、搜索几类。 使用这些函数可大大减轻编程的负担。用于输入输出的字符串函数, 在使用前应包含头文件"stdio.h" ; 使用其它字符串函数则应包含头文件"string.h"。 下面介绍几个最常用的字符串函数。
1.字符串输出函数 puts 格式: puts (字符数组名) 功能:把字符数组中的字符串输出到显示器。 即在屏幕上显示该字符串
#include"stdio.h"
main()
{
static char c[]="BASIC\ndBASE";
puts(c);
}
2.字符串输入函数gets 格式: gets (字符数组名) 功能:从标准输入设备键盘上输入一个字符串。 本函数得到一个函数值,即为该字符数组的首地址。
#include"stdio.h"
main()
{
char st[15];
printf("input string:\n");
gets(st);
puts(st);
}
3.字符串连接函数strcat 格式: strcat (字符数组名1,字符数组名2) 功能:把字符数组2中的字符串连接到字符数组1 中字符串的后面,并删去字符串1后的串标志“\0”。本函数返回值是字符数组1的首地址。
#include"string.h"
main()
{
static char st1[30]="My name is ";
int st2[10];
printf("input your name:\n");
gets(st2);
strcat(st1,st2);
puts(st1);
}
4.字符串拷贝函数strcpy 格式: strcpy (字符数组名1,字符数组名2) 功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“\0”也一同拷贝。字符数名2, 也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。
#include"string.h"
main()
{
static char st1[15],st2[]="C Language";
strcpy(st1,st2);
puts(st1);printf("\n");
}
5.字符串比较函数strcmp 格式: strcmp(字符数组名1,字符数组名2) 功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。
字符串1=字符串2,返回值=0;
字符串2〉字符串2,返回值〉0;
字符串1〈字符串2,返回值〈0。
本函数也可用于比较两个字符串常量,或比较数组和字符串常量。
#include"string.h"
main()
{ int k;
static char st1[15],st2[]="C Language";
printf("input a string:\n");
gets(st1);
k=strcmp(st1,st2);
if(k==0) printf("st1=st2\n");
if(k>0) printf("st1>st2\n");
if(k<0) printf("st1<st2\n");
}
6.测字符串长度函数strlen 格式: strlen(字符数组名) 功能:测字符串的实际长度(不含字符串结束标志‘\0’) 并作为函数返回值。
#include"string.h"
main()
{ int k;
static char st[]="C language";
k=strlen(st);
printf("The lenth of the string is %d\n",k);
}

string是C++里才新定义出来的类型,使用前要#include <string>,C里面用的是C风格的字符串

即使是C++用的时候也要使用namespace——————std::string i = "";头文件string

string src="hello"可以这么理解.

在头文件里有:
typedef char *string
所以这一句其实就是:
char *src="hello";
就是在声明了一个字符串数组后对其进行了初始化.

这一句可以写成这样:
char src[6]="hello";

这一句理解了,后面两句也就容易理解了.
string filename,temp
就是:
char *filename,*temp
是两个字符类型的指针.

  • 13053514610 :C语言中有string吗
    郗鲁巧3877 :答:(2) 如果 string 是专用词汇,“C语言中有string类型变量吗”,答,没有。string 是 类,是 class, 不是 类型,不是 type.
  • 13053514610 :在c语言中有没有string类型
    郗鲁巧3877 :答:c语言中没有string类型 在C++、java等编程语言中,String就是字符串。在C语言中字符串用字符数组表示,没有单独的string类型变量。可通过string.h中定义的函数完成字符串的相关操作。
  • 13053514610 :C语言有String吗?
    郗鲁巧3877 :答:C语言中没有string,除用字符数组外,还可以用指针表示,比如 char *string="C yuyan"
  • 13053514610 :C语言string是什么数据类型?
    郗鲁巧3877 :答:C语言的基本数据类型中没有string类型,如果看到了,多半是自己定义的,也可能是由char*定义。C++中又string的类,但也不是数据类型
  • 13053514610 :小白问题,C语言里没有string这个数据类型么
    郗鲁巧3877 :答:没有。不过可以用 char *string1="abcd"; // 定义一个字符串指针 或者 char string2[]="abcd" //定义字符串数组 来代替。
  • 13053514610 :C语言有字符串这种数据类型吗?
    郗鲁巧3877 :答:C/C++语言 用 char 数组 存放 字符串。例如:char str[]="abcd 1234";char *ss = "1234 XYZ";printf("%s\n%s\n",str,ss);C++ 有 string 类 (class) , 术语 “类” 不是 术语“类型”。java 学了 string 类。例如 :include <iostream>#include <string>using namespace std;int ...
  • 13053514610 :c语言string是什么意思(string在c语言中是什么意思)
    郗鲁巧3877 :答:C语言中没有string类型。string类型是C++、java、VB等编程语言中的。在java、C#中,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。c语言中,string是做什么用的。怎么用,请详细说下 string是一个头文件#include就包涵了对字符处理的一些函数,比如strlen用来计算串长度strcpy...
  • 13053514610 :为什么C语言没有String类型?
    郗鲁巧3877 :答:C语言没有String类型,但是C语言提供了字符串常量。C语言中字符串的概念:以 NUL 字节结尾的零个或多个字符,字符串通常储存在字符数组中 当一个字符串常量出现在一个表达式中时,表达式所使用的值就是这些字符所存储的地址,因此可以把字符串常量赋值给一个“指向字符的指针”。
  • 13053514610 :c语言中,char和str的意思和具体用法,最好有例子。
    郗鲁巧3877 :答:C语言没有string这个类型的变量,但有string类型的常量,“thank you" 这个字符串就是一个常量,在C++里,string是C++的库里定义的这样的一个类,叫string类。char 就是定义一个字符。因为“thank you”这个字符串作为右值表示的是他的第一个字符的地址,即字母't'的地址,所以可以有:char * str =...
  • 13053514610 :c语言中string是啥意思啊? 控制啥的啊
    郗鲁巧3877 :答:编程语言中的字符串,用双引号引起来的几个字符.如"Abc","一天"。String类是不可变(final)的,对String类的任何改变,都是返回一个新的String类对象。 这样的话把String类的引用传递给一个方法,该方法对String的任何改变,对原引用指向的对象没有任何影响,这一点和基本数据类型相似。 string s1,s2; s1="abc";...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网