Follow Excellent, Success will Chase you

0%

C代码片段

记录一些遇到代码片段:

去掉字符串末尾多余字符:回车 空格

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
static void clean_string(char * const str)
{
char *start = str;
char *end = str;
char *p = str;

while(*p) {
switch(*p) {
case ' ':
case '\r':
case '\n':
if(str != start) {
*start = *p;
start++;
}
break;
default:
*start = *p;
start++;
end = start;
}
p++;
}
*end = '\0';
}

生成随机数: 异或

1
2
3
4
5
6
7
8
9
10
11
12
static void seedrand_val2()
{
struct timeval tv;
unsigned int rand_val = 0;

gettimeofday(&tv, NULL);

//秒(tv.tv_sec)和微秒(tv.tv_usec)和进程ID的位进行异或操作生成随机数
rand_val = tv.tv_sec^tv.tv_usec^getpid();

printf("%s: rand_val=%d\n", __func__, rand_val);
}

伪随机数:rand

1
2
3
4
5
srand((unsigned)time(NULL));

#define MIN_BANDWIDTH 60
#define MAX_BANDWIDTH 200
#define random() (MIN_BANDWIDTH + (int)((double)rand() / ((double)RAND_MAX+1.0) * (MAX_BANDWIDTH - MIN_BANDWIDTH)))

随机范围:60~200

-------------本文结束感谢您的阅读-------------
  • 本文作者: Winddoing
  • 本文链接: https://winddoing.github.io/post/16839.html
  • 作者声明: 本博文为个人笔记, 由于个人能力有限,难免出现错误,欢迎大家批评指正。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!