c语言中string用法,c语言编程,提示输入一个字符串string,然后在string里面每个字母间加一个空格,用指针完成
c语言中string用法,c语言编程,提示输入一个字符串string,然后在string里面每个字母间加一个空格,用指针完成详细介绍
本文目录一览: c语言中string怎么用啊
用于输入输出的字符串函数, 在使用前应包含头文件"stdio.h" ; 使用其它字符串函数则应包含头文件"string.h"。
C语言几乎是现在所有高校必须学的科目之一,现在软件业的发展急需C语言天才来进行开发。C语言提供了丰富的字符串处理函数, 大致可分为字符串的输入、输出、合并、修改、比较、转换、复制、搜索几类。 使用这些函数可大大减轻编程的负担,给高效的编程提供了保障。
puts 功能就是把字符数组中的字符串输出到显示器,字符串输入函数gets 格式: gets (字符数组名) 功能:从标准输入设备键盘上输入一个字符串。
当你要用到这个头文件中定义的函数时。
比如如果你要使用strlen,strcmp,strcat等字符串操作函数,就需要#include
。
#include
void main(){
string words="";
printf("请输入任意字符串,按回车结束。\n");
scanf("%s",&words);
printf("%s",words);
}
在用到string.h库中的相关函数时应该加#include
具体是哪些函数,你打开string.h文件就能明白
string:编程语言中的字符串
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);
}
</st2\n");
string在c语言中是什么意思?
string在c语言中的意思是System.Char对象的有序集合,用于表示字符串。
String就是C等编程语言中的字符串,用双引号引起来的几个字符。
在java、C#中,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。String对象是 System.Char 对象的有序集合,用于表示字符串。String对象的值是该有序集合的内容,并且该值是不可变的。
可以使用以下方法之一来创建string对象:
通过给String变量指定一个字符串。
通过使用String类构造函数。
通过使用字符串串联运算符(+)。
通过检索属性或调用一个返回字符串的方法。
通过格式化方法来转换一个值或对象为它的字符串表示形式。
c语言编程,提示输入一个字符串string,然后在string里面每个字母间加一个空格,用指针完成
#include
#include
void addspace(char *s,char *b){ int l=strlen(s); int lb=2*l-1; int i; for(i=0;i
<lb;i++) *(b+i)="i%2?'" ':*(s+i 2); *(b+lb)="*(s+l);}int" main(){ int i,l; char s[150],b[300]; printf("请输入一串字符:"); scanf("%s",s); addspace(s,b); printf("加空格后的字符串:%s\n",b); return 0;}运行结果:
请输入一串字符:abcdefgh
加空格后的字符串:a b c d e f g h
#include
int main()
{char s[200],*p,*q;
printf("Enter a string:");
scanf("%s",s);
for(p=q=s;*p;p++,q+=2);
for(*--q=0,*p--;p>s;)
{*--q=*p--;*--q=' ';}
puts(s);
return 0;
}
int main(){#define MAX_SIZE 1024 char c[MAX_SIZE] = {0}; printf("input one string:"); scanf("%s", c); int n = 0; char *p = c; char achOut[MAX_SIZE * 2] = {0}; while(*p != '\0') { achOut[n++] = *p++; achOut[n++] = ' '; } printf("%s", achOut);}
1、定义和构造初始化,string 提供了很多构造函数,可以以多种方式来初始化string字符串。
2、赋值,拼接字符串,string重载了 = + += 等多种运算符。
3、访问字符操作,string可以按数组方式,以下标来访问。还可以用at()函数访问指定的字符。
4、可以使用 STL 的接口,可以把 string 理解为一个特殊的容器,容器中装的是字符。
5、比较操作 == != > >= < <= compare 等,string的比较操作,按字符在字典中的顺序进行逐一比较。在字典前面的字符小于后面的字符。
6、查找 find rfind ,string中除了find、rfind,还有find_first_of等函数也提供了强大的查找功能。
c语言中的string
string:编程语言中的字符串
基本信息
String就是C++、java等编程语言中的字符串,用双引号引起来的几个字符.如"Abc","一天".
特别注意
String类是不可变(final)的,对String类的任何改变,都是返回一个新的String类对象.这样的话把String类的引用传递给一个方法,该方法对String的任何改变,对原引用指向的对象没有任何影响,这一点和基本数据类型相似.
String s1,s2;
s1 = "abc";
s2 = s1;
s2 = "def";
//这样操作之后s1还是"abc",s2则是"def",s1不受s2的影响.
string a = "hello,word!";
string b = "hello,word!";
string c = "hello!";
string a = "hello,word!";
string b = "hello,word!";
string c = "hello!";
a 和 b 是不是指向同一个地址呢,这个问题在各论坛都是谈论很激烈,其实很简单,跟下这些字符串的内存地址就好了
string a = "hello,word!";
00000042 mov eax,dword ptr ds:[02A62208h]
00000048 mov dword ptr [ebp-44h],eax
string b = "hello,word!";
0000004b mov eax,dword ptr ds:[02A62208h]
00000051 mov dword ptr [ebp-48h],eax
string c = "hello!";
00000054 mov eax,dword ptr ds:[02A756F8h]
0000005a mov dword ptr [ebp-4Ch],eax
a的地址指向02A62208h,b的地址也是02A62208h,这说明了什么,创建b的时候.net机制肯定是先去查找内存中是否有这个字符串的内存地址,如果有则指向,没有才创建[1]
修改于2012.510
不知道你具体要问什么
c语言定义string是什么意思?
C语言没有string,你说的应该是C++代码。
在java、C#中,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。 String 对象是 System.Char 对象的有序集合,用于表示字符串
在java、C#中,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。 String 对象是 System.Char 对象的有序集合,用于表示字符串。
String对象的值是该有序集合的内容,并且该值是不可变的。
string用法举例:
string s = "abcdef";cout << s << endl
结果就应该是输出了字符'a',同时string类型也可以直接加上另一个字符串,例如
string a = "abc", b = "bcd";a = a + b;cout << a << endl
结果应该输出字符串“abcbcd”
而且string还支持直接比较两个字符串的大小(内置字典序比较方式)。
C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。
当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。
c语言中,string是做什么用的,,怎么用,请详细说下
string是一个库的名字,如果你需要用到这个库里面的函数,就需要#include
,里面含有的函数比较多,在调用时,每个函数都有各自的格式,一般在c语言课本后面的附录中都有介绍的。
是一个调用字符函数的文件头名。
string:编程语言中的字符串
string是一个头文件
#include
就包涵了对字符处理的一些函数,
比如strlen用来计算串长度
strcpy是串拷贝函数
strcmp是串比较函数
。。。。。。。
必须包涵string.h这个头文件,才能调用这些函数
C语言中string指令是什么?
C语言是一门面向过程的语言,它压根就没有string类类型,字符串在C语言中是用char *s,或者char s[]来表示的,只有C++、C#等等面向结构的高级语言有string类类型,string s = “”;我不知道你说的string指令是什么意思,就算在C语言中你要封装成string的接口,也是不行的,因为string是关键字,无法做变量名和函数名来命名的。
如果还有问题,可以追问。
string在C语言中没有什么特别的含义,既不是关键字,也不是库函数。
string可能是编程人员自定义的一个变量名或函数名等。如:
char string; // 定义一个字符变量string
char *string="abcd"; // 定义一个字符指针变量string
void string() // 定义一个函数,函数名为string
{
printf("abc");
}
指的是字符串类
string s1;string s2="hello"
String类是不可变(final)的,对String类的任何改变,都是返回一个新的String类对象.这样的话把String类的引用传递给一个方法,该方法对String的任何改变,对原引用指向的对象没有任何影响,这一点和基本数据类型相似.
你是说头文件中的
还是说string类型呢?
楼上的回答不知道是否正确,C语言定义字符串是char * 类型,或者char str[],用数组。
你说的string好像是C++的吧?
c语言中有类的概念吗?string类?没听过、、、
我仔细看了他答案,连对象都出来了,肯定不是C语言的了。。
你要说
那我猜就是各种函数了吧,什么strcmp,strcpy,strlen等等。。。。
你把问题说明白点吧。。。
string:编程语言中的字符串
string 是 c++的,不是 c 的
stirng 是C++里面一个用来处理字符串的类。包含了字符串处理掉一下常用方法,如:
Constructors 构造函数,用于字符串初始化
Operators 操作符,用于字符串比较和赋值
append() 在字符串的末尾添加文本
assign() 为字符串赋新值
at() 按给定索引值返回字符
begin() 返回一个迭代器,指向第一个字符
c_str() 将字符串以C字符数组的形式返回
capacity() 返回重新分配空间前的字符容量
compare() 比较两个字符串
copy() 将内容复制为一个字符数组
data() 返回内容的字符数组形式
empty() 如果字符串为空,返回真
end() 返回一个迭代器,指向字符串的末尾。(最后一个字符的下一个位置)
erase() 删除字符
find() 在字符串中查找字符
find_first_of() 查找第一个与value中的某值相等的字符
find_first_not_of() 查找第一个与value中的所有值都不相等的字符
find_last_of() 查找最后一个与value中的某值相等的字符
find_last_not_of() 查找最后一个与value中的所有值都不相等的字符
get_allocator() 返回配置器
insert() 插入字符
length() 返回字符串的长度
max_size() 返回字符的最大可能个数
rbegin() 返回一个逆向迭代器,指向最后一个字符
rend() 返回一个逆向迭代器,指向第一个元素的前一个位置
replace() 替换字符
reserve() 保留一定容量以容纳字符串(设置capacity值)
resize() 重新设置字符串的大小
rfind() 查找最后一个与value相等的字符(逆向查找)
size() 返回字符串中字符的数量
substr() 返回某个子字符串
swap() 交换两个字符串的内容
c++中c_str()用法,越详细越好。
c_str 是c++ 中 string类 (class) 的 函数,它能把 string类 的对象里的字符串 转换成 C 中 char 型变量 的 字符串。例如:
#include
#include
#include
using namespace std;
int main ()
{
char *cstr,*p;
string str ("Please split this phrase into tokens");
cstr = new char [str.size()+1];
strcpy (cstr, str.c_str());
// cstr now contains a c-string copy of str
p=strtok (cstr," ");
while (p!=NULL)
{
cout << p << endl;
p=strtok(NULL," ");
}
delete[] cstr;
return 0;
}
输出:
Please
split
this
phrase
into
tokens
c_str()是string类的一个成员函数, 返回常量char *类型的C风格字符串。
如果你觉得c++标准库中存在一个独立的c_str函数,请你举个例子给大家看看,如果程序正确,我给你200分,一言九鼎。不要以为你100分很了不起,故意鸡蛋里挑骨头。
<1>
char* c;
string s="1234";
c = s.c_str();
c_str()只能转换成const char *,
这个char *c 是不能改变值的 。
因为指针C没有分配空间 。
;
实际上部分编译器将会直接报错。
string aa("aaa");
char *c=aa.c_str();
cannot convert from 'const char *' to 'char *'
const char *c=aa.c_str();
<2>
要转成char *这样写:
string mngName;
char t[200];//
//或者char *t=NULL;
// t=new char(strlen(mngName.c_str)+1); 用NEW 的使用完了
//记得delete t; t=NULL;
memset(t,0,200); //将T清空
strcpy(t,mngName.c_str()); //拷贝
也可以这样写:
string mngName;
char t[200];
sprintf(t,"%s",mngName.c_str());
//
c_str()是string的一个成员函数, 返回char*类型的字符串。
string::c_str()函数返回一个char*指针,作用就是把string类型的变量转化为C字符串
应该这样用:
char c[20];
string s="1234";
strcpy(c,s.c_str());
这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作。
语法: const char *c_str();
c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.,这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。
注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针。
扩展资料:关于上述用法种最好不要这样用
const char* c;
std::string s = "1234";
c = s.c_str();
std::cout << c << std::endl; //输出:1234
s = "abcd";
std::cout << c << std::endl; //输出:abcd
上面如果继续用c指针的话,导致的错误将是不可想象的,就如:1234变为abcd。
C语言中有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
,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
是两个字符类型的指针.
#include
void main(){
string words="";
printf("请输入任意字符串,按回车结束。\n");
scanf("%s",&words);
printf("%s",words);
}
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类
参考资料来源:百度百科-字符数组
</st2\n");
</string.h这个头文件里声明的函数原型也全是针对char数组的种种操作。直到c++中才出现了string这个类(注意是类,
</string.h这个头文件,所以就想当然的认为c语言里有string这个