我需要C中的一個問題的幫助。 我有兩個數字。首先是「數字串」(我用字符串表示),我需要將它分成數字的任意組合,這些數字總和給我第二個數字。 例如:888 24 我需要將它分成8 + 8 + 8 返回的數字是+個元素的數量。在示例是答案2. 拆分成每一個數字很容易,但我不知道如何在不同的情況下做到這一點。從C中的數字字符串找到數字組合的總和
1234 46 (12+34)
1234 127 (123+4)
101 2 (1+01)
當我沒有發現任何組合返回值是不可能的。
我有這字符串分割到數字,但我不知道如何成功地應用它:/
long** printComb(char *line, int l, int lp, int r, int rp){
char **vys;
vys = (char**) malloc(2*sizeof(char*));
vys[0] = (char*) malloc(lp*sizeof(char));
vys[1] = (char*) malloc(rp*sizeof(char));
int i;
for(i = 0; i < lp; i++)
vys[0][i] = line[l+i];
vys[0][i] = '\0';
for(i = 0; i < rp; i++)
vys[1][i] = line[r+i];
vys[1][i] = '\0';
return vys;
}
感謝每一個建議:)
歡迎來到Stack Overflow! [請參閱此討論,爲什麼不在'C'中投射'malloc()'和family的返回值。](http://stackoverflow.com/q/605845/2173917)。 –
請注意,你malloc一個lp大小的塊,然後使用該指針來填充lp + 1的值。 –
您返回vys,它是'char **',但函數簽名中返回類型爲'long **':**不好** –