C语言言中的字符串是什么意思

C语言言中的字符串是什么意思

这个怎么给你解释呢!字符串是C语言当中专门定义的一类数据格式(string),相对于单个字符的数据格式CHAR来说,可用于存储多个字符,包括字母、数字、符号。
字符串的长度可以自定义,例如:string a[100],就是定义了长度为100个字符的字符串。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-25
如下:
C语言里的字符串一定纠结了大家太多的感情。
1.char *
char *buff="orisun";
sizeof(buff)=4  用32位存放一个指针
strlen(buff)=6  strlen返回字符串的实际长度,不包括末尾的'\0'
2.char [n]
char bu[100]="orisun";  从第7位到第100位都是'\0'
sizeof(bu)=100   bu是一个数组,sizeof返回数组的长度
strlen(bu)=6    strlen返回字符串的实际长度,不包括末尾的'\0'
但注意在printf("%s\n",bu);之前必须先bu[100]='\0';
3.char[]
char bu[]="orisun";  首先bu是一个数组,它的长度由 "orisun"的长度决定, sizeof(bu)=7
我们知道数组在第1次出现时必须指明长度,因为在编译时编译器就要为它分配空间,所以下面的写法是不能通过编译的:
char bu[];
bu="orisun";

4.不能把const char*赋给char *
const char*的含义并非是指针不可被修改,而是指针指向的内容不可被修改,因此,当把一个const char*赋给一个char*,结果就导致原来加那个const的目的形同虚设,一点意义也没有了。
5.可以把const char赋给char
基本类型的“赋值”,也就是拷贝一个值而已,拷贝之后,不管你对后面的那个char怎么修改,都不会影响原先那个const char
6.可以strcpy(char*,const char*)
表头文件 #include<string.h>
定义函数 char *strcpy(char *dest,const char *src);
函数说明 strcpy()会将参数src字符串拷贝至参数dest所指的地址。
返回值返回参数dest的字符串起始地址。
附加说明如果参数dest所指的内存空间不够大,可能会造成缓冲溢出(buffer Overflow)的错误情况,在编写程序时请特别留意,或者用strncpy()来取代。
7.strncpy
定义函数   char * strncpy(char *dest,const char *src,size_t n);
函数说明   strncpy()会将参数src字符串拷贝前n个字符至参数dest所指的地址。
8.strdup复制字符串
定义函数    char * strdup( const char *s);
函数说明    strdup()会先用maolloc()配置与参数s字符串相同的空间大小,然后将参数s字符串的内容复制到该内存地址,然后把该地址返回。该地址最后可以利用free()来释放。
所以strdup和strcpy的区别在于:使用strdup目标指针不需要(也不能)事先分配空间,而使用strcpy则事先把空间分配好。
返回值    返回一字符串指针,该指针指向复制后的新字符串地址。若返回NULL表示内存不足。
9.strcat连接字符串(同理有strncat)
char * strcat( char *dest , const char * src)
返回dest的首地址,dest必须有足够的空间来容纳拷贝的字符串
10.strncasecmp(忽略大小写比较字符串)
int strncasecmp(const char *s1,const char *s2,size_t n);
11.strtok  分割字符串
char *strtok(char *s, char *delim);
分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。实质上的处理是,strtok在s中查找包含在delim中的字符并用NULL(’\0′)来替换,直到找遍整个字符串。
char buff[]="abcsw21";
char *delim="$";
char *title=strtok(buff,delim);    //title="abc"
char *address=strtok(NULL,delim);  //address="sw"
char *area=strtok(NULL,delim);  //area="21"
注意:不能使用char ”buff="abcsw21";因为strtok函数在运行时会改变第一个参数的值,如果把buff定义为一个常量指针,其值无法被修改,在使用strtok时会发生段错误。
第2个回答  2011-03-28
c语言中的字符串跟java或c++中的字符串不同。如char *p;其中p是一个指针,p中存储一个内存缓冲区的首地址。所谓的内存缓冲区就是一段连续的内存地址,里面存放了一系列的字符。那系统又是如何判断在哪里结束呢。那就是根据符号‘\0’。这个字符占一个字节,8位,每位的值都是0。
第3个回答  2011-03-27
C语言中没有类似java的string类型,而是用char *a = “”;表示。
意思是一串字符。
单个字符(形如‘a’)组成的数组,且末尾添加了‘/0’表示结束。
第4个回答  2011-03-28
字符串就是一串字符;
#include<string.h>
//这是字符串的头文件;
char a;//表示a是单个字符串
string a;//表示a是一个字符窜 “aasssdds”,“asfserewwseg13243—3”,都是字符串

c语言定义字符类型?
2、符串或串(String)是由零个或多个字符组成的有限序列。一般记为s=a1a2an(n=0)。它是编程语言中表示文本的数据类型。3、={name,number};其中每个字符串的结尾都是\\0(也就是0值)换言之,第一个[]是几,就可以装几个最大长度为第二个[]-1的字符串。4、c语言中没有字符串,只有字符数...

c语言中标志符和字符串有什么区别?
字符串是由零个或多个字符组成的,以'\\0'(空字符)结束的量。如:"zhangsan"、"LiSi"等等。

字符串和字符数组的区别
1、字符数组是指用来存放字符数据的数组。其定义的一般形式为: char 数组名[数据长度] 。字符数组用于存放字符或字符串,字符数组中的一个元素存放一个字符,它在内存中占用一个字节。C语言中没有字符串类型,字符串是存放在字符型数组中的。2、例:char c[10];c[0]='I'; c[1]=' '; c[...

c语言char什么意思
在C语言中,char是一种基本数据类型,专门用于存储单个字符。具体而言,char在C语言中是一个关键字,它表示的是字符型数据。每一个char变量在内存中占用一个字节的存储空间。按照标准,一个char变量的取值范围是-128到127。这意味着它能够表示的字符种类相对有限,但对于基本的文本字符已经足够。在C语言...

C语言源程序是由什么构成的
C语言的字符串其实就是以'\\0'字符结尾的char型数组,使用字符型并不需要引用库,但是使用字符串就需要C标准库里面的一些用于对字符串进行操作的函数。它们不同于字符数组。6、文件输入\/输出 在C语言中,输入和输出是经由标准库中的一组函数来实现的。在ANSI C中,这些函数被定义在头文件<stdio.h>;...

字符串常量和字符常量的区别
对于C语言而言:一个是字符类型,一个是字符串类型。二者类型不同。形式写法也不同。用单撇号括起来的一个字符就是字符型常量,如'a','#',只能包含一个字符,上面是普通字符常量,还有转义字符常量,如'\\n';字符串常量是用双撇号括起来的部分,如"abc","Hello!”占内存大小:字符常量只占一...

C语言的32个关键字是什么意思啊
字符串或串(String)是由零个或多个字符组成的有限序列。一般记为 s='a1a2•••an'(n>=0)。它是编程语言中表示文本的数据类型。通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要...

C语言里面怎么判断字符串的大小?
C语言中字符串的大小表示按字符的ASCII码值大小进行度量的一种表示方法。字符串的大小是相对而言的,即至少需要2个字符串才能进行比较 对于判断2个字符串的大小可以根据如下规则进行判断:从第一个字符开始,顺次向后直到出现不同的字符为止,然后以第一个不同的字符的ASCII码值确定,ASCII码值大的字符...

在c语言中哪几种初始化字符串时,编译器会自动给字符串加上结束符?
以字符串字面量(配对的双引号之间的字符串)来表示字符串时,字面量本身末尾隐含了'\\0'。用字符串字面量来声明一个字符指针或数组时,最后会以'\\0'结尾,因此是有效的字符串。此外,自动变量只要在声明同时初始化,且初始化部分没有完全填满声明的空间时,剩余部分都会被填充0。由于(char)0等于'\\...

c语言是计算机的什么语言是高级还是低级?
C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言,能以简易的方式编译、处理低级存储器。C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

相似回答