c中string头文件怎么写( 二 )


那么,这时候我们的处理方式是:如果 此函数对参数(也就是char*)的内容不修改的话,我们可以这样Connect((char*)UserID.c_str(), (char*)PassWD.c_str()),但是这时候是存在危险的,因为这样转换后的字符串其实是可以修改的(有兴趣地可以自己试一试),所以我强调除非函数调用的时候不对参数进行修改,否则必须拷贝到一个char*上去 。当然,更稳妥的办法是无论什么情况都拷贝到一个char*上去 。
同时我们也祈 祷现在仍然使用C字符串进行编程的高手们(说他们是高手一点儿也不为过,也许在我们还穿开裆裤的时候他们就开始编程了,哈哈…)写的函数都比较规范,那样 我们就不必进行强制转换了 。2.3元素存取 我们可以使用下标操作符[]和函数at()对元素包含的字符进行访问 。
但是应该注意的是操作符[]并不检查索引是否有效(有效索引0~str.length()),如果索引失效,会引起未定义的行为 。而at()会检查,如果使用 at()的时候索引无效,会抛出out_of_range异常 。
有一个例外不得不说,const string a;的操作符[]对索引值是a.length()仍然有效,其返回值是'\0' 。其他的各种情况,a.length()索引都是无效的 。
举例如下 。
2.c语言中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;
【c中string头文件怎么写】字符串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);