小编Mav*_*ugu的帖子

如何将无符号字符数组转换为C中的十六进制字符串

是否可以将无符号字符数组表示为字符串?

当我搜索它时,我发现只有memset()能够做到这一点(但是逐个字符).假设这不是正确的方法,有没有办法进行转换?

上下文:我正在尝试存储加密哈希函数的输出,该函数恰好是无符号字符数组.
例如:

unsigned char data[N]; ...
for(i=0;i<N;i++) printf("%x",data[i]);
Run Code Online (Sandbox Code Playgroud)

我的目标是将数据表示为String(%s),而不是每个元素访问它.因为我需要将哈希的输出作为字符串进行进一步处理.

谢谢!

c string types

7
推荐指数
1
解决办法
2万
查看次数

C中有哪些广泛使用的加密/哈希库?

我一直在研究C中的加密实现.我需要使用任何一种流行的哈希函数(如SHA,MD5等)来​​使用哈希消息.

在Java中,有一个安全库可以处理这些事情.
但是我如何在C中做同样的事情呢?

例如:char*str ="这是一条消息"; char*hash = SHA(str);

这种东西.如果有人可以指向一些已经实现了这些功能的库,我可以为我的程序调用,这将是非常有帮助的.

谢谢!

c cryptography

6
推荐指数
1
解决办法
2617
查看次数

Infix vs Postfix

昨天在采访中有这个问题.哪个更好用?中缀(带括号)或后缀?有理由的国家..

我只能告诉他们:

  1. 编译器更容易处理算术评估和运算符优先级的后缀表达式.
  2. 更多的存储器用于存储和处理括号.

请详细说明我是否对此?

compiler-construction programming-languages data-structures

4
推荐指数
1
解决办法
4388
查看次数

运行简单的字符串C程序时出现总线错误

我正在运行这个简单的程序,我得到的输出是"总线错误".使用一些调试语句我发现它发生的点是在strcat()调用.

#include<stdio.h>
#include<string.h>
main()
{
char *s = "this is ";
char *s1 = "me";  
strcat(s,s1); 
printf("%s",s);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在MAC,64位操作系统上使用gcc编译器运行它.如果我需要提供更多规格,请告诉我.

谢谢!

c string strlen bus-error

4
推荐指数
2
解决办法
5789
查看次数

将C字符串转换为二进制表示

在ANSI C中,我们如何将字符串转换为二进制字节数组?所有的谷歌搜索和搜索给了我C++和其他人的答案,而不是C.

我的一个想法是将字符串转换为ASCII,然后将每个ASCII值转换为二进制.(呃!)我知道这是最愚蠢的想法,但我不确定任何其他选择.

我听说过Java中的编码功能.我不确定这是否符合相同的目的,可以采用C.

string = "Hello"
bytearr[] = 10100101... some byte array..
Run Code Online (Sandbox Code Playgroud)

如果有人可以对此有所了解,那就太好了.

谢谢!

c string bytearray

3
推荐指数
1
解决办法
3万
查看次数

如何在内存有限的UNIX/LINUX中读取大文件?

我有一个要打开的大文本文件(例如 - 5GB大小).但是有限的RAM(占用1 GB),如何在没有任何内存错误的情况下打开和读取文件?我在安装了基本软件包的linux终端上运行.

这是一个面试问题,因此请不要考虑实用性.

我不知道是在系统级别还是程序级别来看待它...如果有人能够对这个问题有所了解,那就太棒了.

谢谢.

unix ram file

3
推荐指数
1
解决办法
1865
查看次数

Erlang列表与元组比较

假设有一个列表的erlang列表:

请注意,列表的大小是固定的.在这种情况下3.

A = [[1,2,3],[4,5,6],[1,8,3],[1,9,3]]
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写将删除所有形式元素的函数[1,_,3].所以我的预期输出将是以下形式:[[4,5,6]]

我能想到的一个解决方案是列表:dropwhile()可以使用的功能.

我在构造谓词函数时遇到了麻烦.是否更容易将每个元素转换为元组然后进行比较?如果是这样,我没有正确的方法可以省略中间元素.

能帮我解决一下这个问题吗?任何其他有效的方法也将受到高度赞赏.

提前致谢!

编辑:问题扩展:

假设有两个erlang列表:

A = [[1,2,3],[2,3,4],[4,5,6]]

B = [[1,4,3],[4,7,6],[7,8,9],[4,9,7],]

输出F(A,B)= [[7,8,9],[4,9,7]]

F被定义为函数,其从列表B中移除与第一和第三位置中的列表A中的任何一个元素匹配的所有元素.

在这种情况下,列表B中匹配[1,_,3]或[2,_,4]或[4,_,6]的所有元素将从列表中删除以给出结果列表.

我正努力写F.

erlang functional-programming

3
推荐指数
1
解决办法
1557
查看次数

strlen 返回 size_t?

在 C 中:
我的字符串长度函数正在返回一个size_t值?

为什么它不返回一个传统的整数?我注意到的另一件事是,当我尝试将这个字符串与另一个字符串连接起来时,我在运行程序时收到了一个总线错误。

上下文:我在玩 gmp 库并将大数字转换为字符串,最终遇到了上述情况。

那是什么样的字符串?我的操作系统是否在此问题中起作用?我使用的是 MAC 64 位操作系统。

编辑:我收到的错误消息是:

: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’
Run Code Online (Sandbox Code Playgroud)

谢谢!

@all:感谢您的回答,但我想我会将总线错误作为另一个问题,因为它似乎是一个不同的问题。

c string strlen

2
推荐指数
1
解决办法
9590
查看次数

SQL学生标记功能查询

在亚马逊上作为面试问题来测试基本的SQL技能,我有点失败了。请考虑以下表格:

Student - Stid, Stname, Details
Subject - Subid, Subname
Marks - Stid, Subid, mark
Run Code Online (Sandbox Code Playgroud)

编写查询以打印在每个学科中得分最高的学生的姓名列表。

我给的错误答案是:

select A.Stname from A as Student, B as 
(select Stid, Subid, max(mark) from Marks groupby Subid) where A.Stid = B.Stid
Run Code Online (Sandbox Code Playgroud)

我以为您可以拥有一个表B,您可以在其中单独获得最高分并将其与学生表A中的名称匹配。但是事实证明,我的“ groupby”是错误的。

我认为可以提出的另一个问题是,如果一个科目中得分最高的学生多于一个,甚至应包括他们的名字。

您能帮忙解决这些疑问吗?它们似乎很简单,但我无法理解。

谢谢!

sql database

2
推荐指数
1
解决办法
7万
查看次数

将Base64转换为GMP整数

我有一个场景,我得到一个Base64(64位编码)字符串.我的要求是将此字符串转换为gmp整数(mpz_t).

但根据GMP手册,函数mpz_set_str()只有"基数可能在2到62之间".

我可以遵循任何方法来执行成功的转换吗?令我印象深刻的一个想法是将Base64转换为二进制,然后使用mpz_set_str和base 2设置mpz_t变量.

帮助将非常感激.谢谢.

c base64 gmp

1
推荐指数
1
解决办法
759
查看次数

Setprecision()用于C++中的浮点数?

在C++中,给浮点数的setprecision()后显示的随机数是多少?

注意:设置固定标志后.

例:

float f1=3.14;
cout < < fixed<<setprecision(10)<<f1<<endl;
Run Code Online (Sandbox Code Playgroud)

我们得到其余7位数的随机数字?但双重情况并非如此.

c++ types

0
推荐指数
1
解决办法
1003
查看次数