小编use*_*227的帖子

在C中使用qsort作为字符数组

我正在尝试用来qsort对字符数组进行排序.我不明白为什么这不起作用.我有一个指向比较函数的指针,如man页面指​​定的那样.有人可以告诉我有什么问题吗?谢谢.我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int cmpfunc( const void *a, const void *b) {
  return *(int*)a - *(int*)b;
}

void AlphabetSoup( char str[] ) {
  qsort(str, (size_t) strlen(str), (size_t) sizeof(char), cmpfunc);
  printf("%s\n", str);
}


int main() {
  char str1[] = "bcead";

  AlphabetSoup(str1);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出: dabce我期待的时候abcde.

c pointers function qsort

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

在继续bash之前等待网络链接

有没有办法在继续之前检查bash脚本中多个接口的成功网络接口链接?

就像是:

eth0 eth1 eth2 eth3 network interfaces are brought up
Wait for link detection on all 4 interfaces
Proceed
Run Code Online (Sandbox Code Playgroud)

bash networking ping ifconfig

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

获取嵌入式 Kaltura 视频的直接下载链接

我正在查看一些嵌入的 Kaltura 视频并尝试获取直接下载链接。

例如,这里是嵌入视频的链接:https : //www.premierchristianradio.com/Shows/Saturday/Unbelievable/Conference-Videos/Os-Guinness-Is-It-Fools-Talk-Unbelievable-Conference-2014

我在 gitHub 上发现有人确定源链接为:http ://cfvod.kaltura.com/pd/p/618072/sp/61807200/serveFlavor/entryId/1_a52wc67y/v/2/flavorId/0_a6xfygse/name/a .mp4

我通常如何提供指向 kaltura 视频的此源链接,以及如何确定 API 的参数/变量的填充?有人可以带我过去吗?

我尝试使用“检查”和源代码选项,但对我来说太复杂了(我不是编码员)。我还尝试使用网络选项卡查看数据流,但没有奏效。

到目前为止我得到的最好的是这些链接:

https://github.com/kaltura/DeveloperPortalDocs/blob/master/documentation/Deliver-and-Distribute-Media/how-retrieve-download-or-streaming-url-using-api-calls.md

https://knowledge.kaltura.com/faq/how-retrieve-download-or-streaming-url-using-api-calls

但是我无法从源代码中确定 API 调用的值。

我只是想这样做来下载嵌入的视频。如果您知道任何其他工具或其他东西,那就太好了。我只是没有发现他们中的任何人拿起视频。

先感谢您!我感谢您的时间/帮助。

download video-streaming embedded-video kaltura

6
推荐指数
4
解决办法
9133
查看次数

使用指针和修剪前导空格重现字符数组

我正在自学C++并正在解决这个问题:

编写一个名为trimfrnt()的函数,删除字符串中的所有前导空格.使用返回类型为void的指针编写函数.

我对这个问题的尝试在下面,我尝试了两种方法来解决这个问题(你可以看到我的两个功能trimfrnt1()trimfrnt2(). trimfrnt1()工作正常.我有点意外地工作.在我编码之后,我不确定为什么它正是它我的困惑在于for循环.我在下面绘制了一个msg数组图:

             |<--ptrMsg--------->|
  |<------for loop---->|
   0    1    2   3     4   5     6    7
+----+----+----+----+----+----+----+----+
|    |    |  G |  R |  E |  A |  T | \0 |
+----+----+----+----+----+----+----+----+
|  G |  R |  E |  A |  T |    |    | \0 |                             
+----+----+----+----+----+----+----+----+                                
Run Code Online (Sandbox Code Playgroud)

问题1

从我上面的图表中,我实际上期待文本:"GREATAT"因为重叠.整个字符串是如何移位和重新初始化的,因为我只通过5个字母循环?

问题2

问题陈述使用指针,所以我虽然trimfrnt1作弊,因为我正在索引,所以我试图做另一种方法trimfrnt2.这个函数我被困在while循环中:

    // shift characters to beginning of char array
    while( *(ptrMsg + count) != '\0' )
    {        
        *ptrMsg …
Run Code Online (Sandbox Code Playgroud)

c++ arrays pointers

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

使用多选项解释rsa的openssl速度输出

我正在尝试评估CPU性能.我有一个Intel(R)Xeon(R)CPU E5-1650 v2 @ 3.50GHz并运行以下命令:openssl speed rsa -multi 12 2>&1 |tee openssl-log.txt并得到以下输出:

                   sign   verify   sign/s   verify/s
rsa  512 bits 0.000008s 0.000001s 118050.6 1200000.0
rsa 1024 bits 0.000038s 0.000002s  26098.7 451567.0
rsa 2048 bits 0.000239s 0.000007s   4183.6 135606.3
rsa 4096 bits 0.001713s 0.000028s    583.7  35778.4
Run Code Online (Sandbox Code Playgroud)

有人可以帮我理解输出吗?列标记和验证意味着什么?这些文档似乎没有解释得太多:https: //www.openssl.org/docs/apps/speed.html

先感谢您.

linux performance openssl rsa

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

SELECT FOR UPDATE 在 MySQL 中保存整个表而不是逐行

我将有多个客户端将数据输入到数据库中,我必须确保事务不会混合在一起。

我在文档中阅读START TRANSACTIONSELECT ... FOR UPDATE锁定它读取的每一行:

SELECT ... FOR UPDATE 读取最新的可用数据,在它读取的每一行上设置排他锁。因此,它设置的锁定与搜索的 SQL UPDATE 将在行上设置的锁定相同。

https://dev.mysql.com/doc/refman/5.0/en/innodb-locking-reads.html

所以我登录了一个客户端并输入了这些语句:

START TRANSACTION;
SELECT * FROM productMacAddress WHERE status='free' limit 8 FOR UPDATE;
Run Code Online (Sandbox Code Playgroud)

在此处暂停第二个客户端条目....

UPDATE productMacAddress SET status='testing1' WHERE status='free' LIMIT 8;
COMMIT;
Run Code Online (Sandbox Code Playgroud)

在另一个客户端,我输入:

START TRANSACTION;
SELECT * FROM productMacAddress WHERE status='free' limit 4 FOR UPDATE;
UPDATE productMacAddress SET status='testing2' WHERE status='free' LIMIT 4;
COMMIT;
Run Code Online (Sandbox Code Playgroud)

但是SELECT在第一个客户完全完成之前,我无法从桌子上做任何事情。为什么会这样?文档指出它应该逐行锁定,特别是因为 I LIMIT 8.

先感谢您。

mysql select transactions sql-update

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

C中的符号函数仅使用位运算符

我正在尝试仅使用按位运算符来实现符号函数.我知道如果我只想提取有符号整数的符号位,我可以这样做:(x >> 31) & 1.

另外,我知道条件可以写成布尔表达式:

if(x) a=y else a=z相当于a = x ? y:z可以改写为:

a=( (x<<31) << 31 ) & y + ( !x << 31) >> 31) & z,假设x = 1或0.

这个问题有点棘手,因为我有3个条件场景:
如果为正则返回1,如果为零则返回0,如果为负则返回-1.

我在想,为了正确地做到这一点,我需要使用!运营商和事实!0x<nonzero #>=0,!0x0=1,!0x1=0.

所以我想出了类似的东西,这是不正确的:

/*                                                                              
 * sign - return 1 if positive, 0 if zero, and -1 if negative                   
 *  Examples: sign(130) = 1                                                     
 *            sign(-23) = -1                                                    
 *  Legal ops: ! ~ …
Run Code Online (Sandbox Code Playgroud)

c bit-manipulation

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

如何查找列表中所有出现的元素?

我读了帖子:如何查找列表中所有出现的元素? 如何查找列表中所有出现的元素?

答案是:

indices = [i for i, x in enumerate(my_list) if x == "whatever"]
Run Code Online (Sandbox Code Playgroud)

我知道这是列表理解,但我无法破解这些代码并理解它.有人可以请我吃饭吗?


如果执行以下代码:我知道枚举将只创建一个元组:

l=['a','b','c','d']
enumerate(l)
Run Code Online (Sandbox Code Playgroud)

输出:

(0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')
Run Code Online (Sandbox Code Playgroud)

如果有一种更简单的方式,我也会对此持开放态度.

python indexing element list

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

C++中的数组初始化(不是字符串)

我正在玩C++中的数组.我定义了一个名为matrix的二维数组,我将提取负值并将其分配给名为array的数组.

有没有办法快速将数组初始化为零而不是枚举所有元素?我查看了其他帖子和行,例如: int array[10] = {}或者 int array[10] = {0}不对我的编译器起作用.error: variable-sized object ‘array’ may not be initialized如果我尝试使用这些语句,我会收到错误消息.

我的教科书说所有数组在声明时都被初始化为零,但是我在我的编译器上测试过这个并不是真的.我不得不通过使用for循环强制它为零.这样做有正确的方法吗?

哦顺便说一句,我有一个mac并使用g ++进行编译.当我这样做时,man g++它说它是llvm-gcc编译器的符号链接.

#include<iostream>

const int NROWS = 4, NCOLS = 5;
int matrix[][NCOLS] = {    16,  22,  99,  4, 18, 
                         -258,   4, 101,  5, 98, 
                          105,   6,  15,  2, 45, 
                           33,  88,  72, 16, 3};

int main()
{
    int SIZE = 10;
    int array[SIZE];
    int count=0;

    // Values of array before initalized    
    for(int i = …
Run Code Online (Sandbox Code Playgroud)

c++

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

char和int是否可以在C中用于函数参数?

我写了一些代码来验证C中的序列号是字母数字使用isalnum.假设isalnum输入是我写的代码char.一切正常.但是,在查看isalnum后面的内容后,我发现它需要输入为int.我的代码是否可以改变它的方式?

如果我确实需要改变,那么正确的方法是什么?我应该只声明一个int并将其设置为char并将其传递给isalnum?这被认为是糟糕的编程习惯吗?

提前致谢.

#include <stdlib.h>
#include <string.h>
#include <stdbool.h>


bool VerifySerialNumber( char *serialNumber ) { 
int num;
char* charPtr = serialNumber;


if( strlen( serialNumber ) < 10 ) { 
    printf("The entered serial number seems incorrect.");
    printf("It's less than 10 characters.\n");
    return false;
}   

while( *charPtr != '\0' ) { 
    if( !isalnum(*charPtr) ) { 
    return false;
    }   
    *charPtr++;
}   
return true;
}


int main() {
char* str1 = "abcdABCD1234"; …
Run Code Online (Sandbox Code Playgroud)

c c++ int alphanumeric char

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

选择排序Python没有内置的ins

我知道python有一堆内置函数,但我尝试编码选择排序最小化内置函数因为我试图理解算法.我的输出对我的选择排序不正确.任何帮助赞赏!提前致谢.

def selection_sort(list):
    for index in range(0, len(list)):
        for i in range(index,len(list)):
            iSmall = index

            if list[iSmall] > list[i]:
                iSmall = i
        list[index], list[iSmall] = list[iSmall], list[index]
    return list  

if __name__ == '__main__':
    print selection_sort([5,2,4,6,1,3,])
Run Code Online (Sandbox Code Playgroud)

python sorting algorithm selection

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

数组作为函数中的地址常量

我正在自学C++并且对数组和指针有一些疑问.我的理解是数组实际上只是指针,但是,数组是无法更改的地址常量.

如果是这种情况,我想知道为什么在我的函数中show2()我能够改变指针的地址list.与变量不同,我认为数组是通过引用传递的,所以我在调用函数时期望编译器错误,show2()因为我增加了地址list.但代码工作得很好.有人可以解释一下吗?

谢谢!

#include<iostream>
#include<iomanip>

using namespace std;

void show1(double *list, int SIZE)
{
    for(int i=0; i < SIZE; i++)
    {
        cout << setw(5) << *(list+i);
    }
    cout << endl;
    return;
}

void show2(double *list, int SIZE)
{
    double *ptr = list;

    for(int i=0; i < SIZE; i++)
        cout << setw(5) << *list++;
    cout << endl;
    return;
}

int main()
{
    double rates[] = {6.5, 7.2, 7.5,  8.3, 8.6, 
                      9.4, …
Run Code Online (Sandbox Code Playgroud)

c++ arrays pointers

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