字符串与随机数

随机数

include<stdio.h>

include<time.h>

include<stdlib.h>

srand( ( unsigned int ) time (NULL) );
char name[20][20] = {
"胡云飞",
"杨子豪",
"黄嘉乐",
"葛志强",
"丁佳杰",
"唐云江"
};
printf("幸运奖的得主是:%s",name[rand() % 6]);

指定控制台输出的颜色属性。

颜色属性由两个十六进制数字指定 -- 第一个
对应于背景,第二个对应于前景。每个数字
可以为以下任何值:

0 = 黑色       8 = 灰色
1 = 蓝色       9 = 淡蓝色
2 = 绿色       A = 淡绿色
3 = 浅绿色     B = 淡浅绿色
4 = 红色       C = 淡红色
5 = 紫色       D = 淡紫色
6 = 黄色       E = 淡黄色
7 = 白色       F = 亮白色

include<stdio.h>

include<windows.h>

int main()
{
char a[16][1024] = {
"看着雪花清瘦,溪水缓溜,梅雨的日子即将光顾我的小院,那一片灿烂的明媚心情自我安慰着自己,等你是一种眼前的寂寞,是一种直接的出入淤泥而不受污染的考验,是否能够抵御诱惑和自清的对白,面对着花花世界里的红尘波浪,是否能将自己那颗枯寂的心灵淹没。",
"看着雪花清瘦,溪水缓溜,梅雨的日子即将光顾我的小院,那一片灿烂的明媚心情自我安慰着自己,等你是一种眼前的寂寞,是一种直接的出入淤泥而不受污染的考验,是否能够抵御诱惑和自清的对白,面对着花花世界里的红尘波浪,是否能将自己那颗枯寂的心灵淹没。",
"我已经记不太清晰山角下的小花开了几次,又匆匆忙忙地落下了几次,只知到你为我种下的石榴树上,每年都长满了果实,而我就在那颗石榴树下回忆和你栽树的情形,最难以忍受的是看石榴树上的叶子,无奈地散落一地的欺凌和恋恋不舍。",
"我仿佛看到了你石榴裙静默的淡彩,似乎你的心依旧在这里凝望。",
"爱你是一种幸福,因为你已是我的全部;想你是一种快乐,因为你已走进我的生活;念你是一种习惯,因为你我已好久不见;看你是一种享受,因为你我可以相互拥有;吻你是一种安全,因为你会留在我的身边;抱你是一种浪漫;因为我们一起迎接明天!",
"爱情是可以让你坐火车坐飞机甚至仅仅目睹明月便可感受彼此的一股永不衰竭的能量。爱情是一双缠绵的双手让你悱恻不已而无怨无悔,抱最大希望,尽最大努力,做最坏打算,持最好心态。记住该记住的,忘记该忘记的,改变能改变的,接受成事实的。人生苦短,每天都是美好的日子。",
"爱人在身旁,处处是天堂",
"人们说:“爱一个人是不求回报的。”但是我却要你给我回报——让我在有生之年把我的爱全部送给你!",
"我希望我们之间的爱,能象小溪中的流水一样,清澈、平静地、欢乐而无忧地流向远方。",
"我只想和你白头到老。爱永远在我们的心中,在我们的眼中。和你共度所有痛苦与快乐的时光!我爱你所有的优点与缺点!",
"相信我,我会让你成为世界上第二幸福的人,因为有了你,我就是最幸福的人!",
"愿你天天都快乐,愿所有的好心情包容着你,愿所有的年轻常刻在你的笑容里。",
"此刻你是否在想着我呢?此时的我十分的挂念着你,如果我有一双翅膀,恨不得马上飞到你身边看望你。",
"你当我是个风筝,要不把我放了,要不然收好带回家,别用一条看不见的情思拴着我,让我心伤。",
"永远爱你"
};
for (int i = 0; i < 16; i++)
{
system("cls");
//清屏
system("color 70");

​ // 改变控制台的字体和背景颜色

​ printf("%s ", a[i]);
​ Sleep(1000);

​ //延时

​ }

while (1);
return 0;

字符与字符串

调用字符串函数需要头文件#include<string.h>

‘字符’,“字符串''

字符串的初始化——四种方式

char a[100]={'a','b'};

char a[100]="字符串";

char a[100]={0};

char a[]="eqfeqfef"

%s——输入字符串

char a[18];

scanf("%s",a,18);

//要加上字符的长度

并且scanf将回车,空格都视为输入结束的标志

char a[18];

gets-s(a,18);

//gets将回车视为输入结束的标志,空格不是,所以可以实现输入带空格的字符串

gets只能用于字符串的输入

fgets——读取文件

char a[18];

fgets(a,sizeof(a),stdin);

//stdin是标准输入,一般指键盘输入到缓冲区里的东西

解决了数据溢出的问题,你输入的数据过大,他会只输出它实际字符空间大小的数据

char a[18]=“字符与字符串''

puts(a);

//puts与printf不同的是puts会在最后自动添加一个‘ ',自动换行

只能用来输出字符串

char a[100]="字符与字符串"

printf("%d",sizeof(a));

printf("%d",strlen(a));

//strlen——字符串的有效长度

自定义strlen函数实现

简便:

char a[100]="字符与字符串";

int len=0;

for(int i=0;i<sizeof(a);i++)

{

if( a[i] != '' )

{

len+=1;

}

}

printf("%d",len);

封装:有类型,有参数

int _strl(const char* _strl)

{

int len=0;

if( _strl != NULL)

{

while((*_strl++) != '')

//(*_strl++)是一个函数体

*_strl++是将_strl解出来再相加

{

len++;

}

}

return len;

}

strcat——string catenate/连接,把什么连接成链状/['kætɪneɪt]

char a[100]="hello";

int len=strlen(a);

printf("len = %d ",len);

char b[100]="world";

strcat(a,b);

printf("%s",a);

//strcat的作用是字符串追加,也叫字符串拼接

但也存在缓冲区溢出的情况(要注意)

`//自定义实现strcat功能 无类型 有参数

void _strcat(char* _strc1 const char* _strc2)

{

if( _strc1 != NULL && _strc2 != NULL )

_//strc1和_strc2里的内容不为空

{

while(*_strc1 != '')

{

_strc1++;

}//一直加到_strc1的末尾

while(*_strc2 != '')

{

_strc1++=_strc2++

//将_strc2字符中的内容加到_strc1最后面

}

*_strc2='';

//表示字符串结束

}

}

//*_strc是指字符串里的内容

//_strc是指字符数位置

`

char a[100]="hello";

char b[100]="world";

strncat(a,b,3);

printf("%s ",a);

//strncat的功能是字符串的有限追加,防止溢出

自定义实现strncat的功能 无类型 有参数

`void _strncat(char* _str1 const char* _str2 size_t len)

{

if(_str1 != NULL && _str2 != NULL)

{

while(*_str1 != NULL)

{

_str1++;

}

for(unsigned int i=0;i<len;i++)

{

_str1++=_str2++;

}

}

}

`

//strcmp——string compare,字符串比较

char a[100]="abcd";

char b[100]="abce"

printf("%d ",strcmp(a,b));

//a>b返回1,a<b返回-1,a=b返回0

//还有字符串比较比的是里面的内容

char a[100]="abcd";

char b[100]="ab";

strcpy(a,b);

printf("%s",a);

//结果输出为ab,因为将b复制到a上时,是将ab复制到abcd的最前面,而还要在ab后面讲‘'

复制过去

strncpy字符串有限复制

char a[100];

for(int i=0;i<100;i++)

{

sprintf(a,"%d:hello world",i);

printf("%s ",a)

}

//输出带编号的hello world

//sprintf的功能是将格式化内容输出到字符串

可以读取多张照片

char a[100]="10 0x10 abcd";

int x,y;

char b[100];

sscanf(a,"%d , %x , %[a-z]",&x,&y,b);

//将内容提取到子串b中

printf("%d %x %s",x,y,b);

//sscanf的功能是从指定格式化字符串读取输入

而scanf的功能是从键盘读取用户输入,做爬虫要用到

`//strchr——string search

char a[100]="hello world";

int x=strchr(a,'r');

//printf("%d ",x);

//返回的r的首地址

printf("%c ",(char)(strchr(a,'r')));

//返回的是r

printf("%c ",(char)(strchr(a,'r')+1));

//返回的是l

//strchr的功能是查找字符,没有找到的话返回NULL

`

strstr——查找子串

char a[100]="xjcenknvnc";

char b[10]="ce";

printf("%s ",strstr(a,b));

//输出cenknvnc

也可以

char *p=strstr(a,b);

printf("%S",p);

strtok——分割字符串

char a[100]="abc@hfefj@kk";

char *p=strtok(a,"@");

printf("%s",p);

//输出abc

char a[100]="https://www.uc123.com/cqc";

char b[100]="www";

char *p=strstr(a,b);

p=strtok(p,"/");

printf("%s",p);

//输出的是www.uc123,com

原文地址:https://www.cnblogs.com/Kissfly123/p/13909505.html