1.字符串常见的API(函数调用的接口)
对字符串进行操作的时候要包含#include
(1)puts
puts类似于ptintf,作用是输出字符串。
#include
#include
#include
int main()
{
char *str="C语言你好!";
puts(str);
system("pause");
return 0;
}
#include
#include
#include
int main()
{
char *str="C语言你好!";
printf("%s\n",str);
system("pause");
return 0;
}
运行结果:
puts和printf的区别:
两者的区别在于,puts输出完字符串并自动换行,printf只有在\n(C语言换行符)的时候才能换行。
(2)gets
gets类似与scanf,作用是输入字符串
注意:当用scanf来输入字符串的时候,如果不定义字符串的空间大小,可能出现段错误。
#include
#include
#include
int main()
{
char pstr[128]={'\0'};
//定义pstr,设置空间为128个字节,把每个元素都初始化为\0
printf("请输入字符串:\n");
gets(pstr);
puts(pstr);
system("pause");
return 0;
}
char pstr[128]={’\0’},在内存当中做了什么事?
在内存当中,申请了连续的128个字节,每一项初始化都为\0。
char *pstr; 定义了一个char型的指针变量,存放的是别人的地址,在
windows下为4个字节,在linux下为8个字节。到底存放是谁的地址,
就不知道了,我们称之为野指针。造成非法内存访问,cmd窗口闪退。
(3)我们要为指针开辟空间:
开辟空间的例子:
pstr=(char *)malloc(128);//开辟空间为128个字节。
#include
#include
#include
int main()
{
char *pstr;//定义指针
pstr=(char *)malloc(128);//申请空间为128个字节。
memset(pstr,'\0',128);//初始化
printf("请输入字符串:\n");
gets(pstr);
puts(pstr);
system("pause");
return 0;
}
运行结果:
memset(pstr,’\0’,128);
1.pstr 初始化的对象
2.初始化成什么字符,一般写‘\0’
3.初始化为多大
(4)用malloc申请空间的时候,可能会失败,要做判断
#include
#include
#include
int main()
{
char *pstr;//定义指针为空
pstr=(char *)malloc(128);//申请空间为128个字节。
if(pstr==NULL)
{
printf("申请内存失败\n");
exit(-1);
}
memset(pstr,'\0',128);
printf("请输入字符串:\n");
gets(pstr);
puts(pstr);
system("pause");
return 0;
}
——@上官可编程