atoi、itoa、rand、srand......



来源:微信公众号「编程学习基地」

string.h:

strncat strcat
//函数名: strncat    
//功  能: 附加指定大小字符串的字符
//用  法: char *strncat(char *strDest,const char *strSource,size_t count)
#include<stdio.h>
#include<string.h>
int main()
{
	char dest[10] = "hello";
	strncat(dest, "add", 2);	//dest字符数组末尾追加两个字符
	printf("%s\n", dest);
    return 0;
}
memchr strchr

memchr有范围限制,可以限制搜索范围

功能都是在数组中搜索字符

//函数名: memchr
//功  能: 在数组的前n个字节中搜索字符
//用  法: void *memchr(void *s, char ch, unsigned n);
#include <string.h>
#include <stdio.h>
int main(void)
{
   char str[17];
   char *ptr;
   strcpy(str, "This is a string");
   ptr = memchr(str, 'r', strlen(str));
   if (ptr)
      printf("The character 'r' is at position: str[%d]= %c\n", ptr - str,str[ptr - str]);
   else
      printf("The character was not found\n");
   return 0;
}
memmove memcpy strcpy

都是将一个缓冲区拷贝到到另一缓冲区

memcpy的速度比memmove快一点,但是memmove安全性更高

//功  能: 拷贝一块内存
#include<stdio.h>
#include<string.h>
int main()
{
	char dest[20], src[20] = "hello world!";
	//strcpy(dest, src);
	//memcpy(dest, src, 20);
    memmove(dest, src, 20);
	printf("%s\n", dest);
    return 0;
}
memset

将缓冲区设置为指定字符

用来初始化一段内存:

//函数名: memset
//功  能: 设置s中的所有字节为ch, s数组的大小由n给定
//用  法: void *memset(void *s, char ch, unsigned n);
#include<stdio.h>
#include<string.h>
int main()
{
	int arr[10];
	memset(arr, 0, sizeof(arr));
	for (int i = 0; i < 10; i++)
	{
		printf("%d\t", arr[i]);
	}
	return 0;
}

stdlib.h:

atoi

把字符串转换成长整型数

//函数名: atoi 
//功  能: 把字符串转换成长整型数 
//用  法: int atoi(const char *nptr); 
#include <stdlib.h> 
#include <stdio.h> 
int main() 
{ 
   int n; 
   char *str = "12345.67"; 
   n = atoi(str); 		//只能转化为int型整数
   printf("string = %s integer = %d\n", str, n); //输出结果为:12345
   return 0; 
} 
itoa

把一整数转换为字符串

//函数名: itoa 
//功  能: 把一整数转换为字符串 
//用  法: char *itoa(int value, char *string, int radix); 
#include <stdlib.h> 
#include <stdio.h> 
int main(void) 
{ 
   int number = 12345; 
   char string[25]; 
   itoa(number, string, 10); 
   printf("integer = %d string = %s\n", number, string); 
   return 0; 
} 
rand

随机数发生器

//函数名: rand 
//功  能: 随机数发生器 
//用  法: void rand(void); 
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int src[10];
	for (int i = 0; i < 10; i++)
	{
		src[i] = rand() % 10;
		printf("%d\t", src[i]);
	}
    return 0;
}
srand

初始化随机数发生器

//函数名: srand 
//功  能: 初始化随机数发生器 
//用  法: void srand(unsigned seed); 
#include<stdio.h>
#include<stdlib.h>
int main()
{
	srand((unsigned)time(NULL));	//设置随机种子
	int src[10];
	for (int i = 0; i < 10; i++)
	{
		src[i] = rand() % 10;
		printf("%d\t", src[i]);
	}
    return 0;
}

有没有设置随机种子,有什么区别呢?

让我们在Linux下测试

#将rand的示例代码写入test并编译运行两次
deroy@ubuntu:~/work$ gcc test.c -o test
deroy@ubuntu:~/work$ ls
test  test.c
deroy@ubuntu:~/work$ ./test 
3	6	7	5	3	5	6	2	9	1	
deroy@ubuntu:~/work$ ./test 
3	6	7	5	3	5	6	2	9	1

运行结果显示,多次运行数字不变

#将srand的示例代码写入test_1并编译运行两次
deroy@ubuntu:~/work$ gcc test_1.c -o test_1
deroy@ubuntu:~/work$ ./test_1 
0	2	6	6	0	9	6	5	5	4	
deroy@ubuntu:~/work$ ./test_1 
8	0	7	4	1	2	5	3	3	6

运行结果显示,多次运行数字改变

区别很明显了吧,自己动手试一试,windows下也是同样的结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DeRoy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值