字符串操作函数(1)

1.字符串常见的API(函数调用的接口)
对字符串进行操作的时候要包含#include 的头文件

(1)puts
puts类似于ptintf,作用是输出字符串。

#include 
#include 
#include 

int main()
{
	char  *str="C语言你好!";
    puts(str);
	system("pause");
	return 0;
}

运行结果:
字符串操作函数(1)_第1张图片
printf

#include 
#include 
#include 
int main()
{
	char  *str="C语言你好!";
	printf("%s\n",str);
    
	system("pause");
	return 0;
}

运行结果:
字符串操作函数(1)_第2张图片
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;
}

运行结果:
字符串操作函数(1)_第3张图片

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;
}

运行结果:
字符串操作函数(1)_第4张图片
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;
}

运行结果:
字符串操作函数(1)_第5张图片

——@上官可编程

你可能感兴趣的:(字符串,指针)