aut*_*tic 13
没有标准功能,但您的操作系统可能会实现某些功能.您是否考虑过搜索手册?或者,这项任务很简单.我很想使用类似的东西:
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
void rand_str(char *, size_t);
int main(void) {
char str[] = { [41] = '\1' }; // make the last character non-zero so we can test based on it later
rand_str(str, sizeof str - 1);
assert(str[41] == '\0'); // test the correct insertion of string terminator
puts(str);
}
void rand_str(char *dest, size_t length) {
char charset[] = "0123456789"
"abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
while (length-- > 0) {
size_t index = (double) rand() / RAND_MAX * (sizeof charset - 1);
*dest++ = charset[index];
}
*dest = '\0';
}
Run Code Online (Sandbox Code Playgroud)
这有利于在EBCDIC系统上正常工作,并且几乎可以容纳任何字符集.我没有在字符集中添加以下任何字符,因为很明显你想要的字符串可能是文件名:
":;?@[\]^_`{|}"
我认为许多这些角色在各种操作系统的文件名中可能无效.
| 归档时间: |
|
| 查看次数: |
26268 次 |
| 最近记录: |