qsortを使用して作業します。qsortで使用するChar * ptrをChar * ptrArray []に変換します。
#include <string.h>
#include <stdlib.h>
#pragma once
int cstring_cmp(const void *a, const void *b);
int main()
{
int count = 0;
char * randomStr = "sdjsn9i3ms;sa;'smsn92;w;''[w0p4;dsmsdf";
char * charArray[] =
{"s","d","j","s","n","9","i","3","m","s",";","s","a",";","'","s","m","s","n"
,"9","2",";","w",";","'","'","[","w","0","p","4",";","d","s","m","s","d","f"};
size_t strings_len = sizeof(charArray)/sizeof(char *);
/*void qsort(void *base, size_t nel,
size_t width, int (*compar)(const void *, const void *));*/
qsort(charArray, strings_len, sizeof(char *), cstring_cmp);
qsort(randomStr, strings_len, sizeof(char *), cstring_cmp);
// Pause at command prompt
system("pause");
return 0;
} // Close function Main
int cstring_cmp(const void *a, const void *b)
{
const char **ia = (const char **)a;
const char **ib = (const char **)b;
return strcmp(*ia, *ib);
}
明らかに、私の2番目のqsortは機能しません。これは私のcstring_cmp関数がqsortに入ってベースをサポートすることができないことに基づいているのか、それとも私のベースがqsortに正しく入力されるようにフォーマットされていないのか、私にとって謎です。
私の質問は、私がchar * randomStrがcharに* charArray []は動的に、実行時に、フライ、またはクールどんなフレーズであなたが思い付くことができコンバート行う方法です。私はたくさんの周りを検索したし、正しい質問をしていないだけかもしれないので、実際の質問に答えるために皆さんにお越ししています。
ちょうどCを始めると、あなたの答えで私の脳を揚げてみませんか私と私の脳はそれを感謝します。
ここでの目標は、randomStrをcharArray、qsortの形式に変換してからrandomStr形式に変換し直して、既に設定したものを見つけて置き換えることです。
ご協力いただきありがとうございます。すべての
頭脳のない 'cmp()'のメリットは何ですか?あなたはそれを使用していないので、脳浮揚バージョンと同じであることは明らかではないかもしれません。 –
@JonathanLefflerフェア十分に、私はコメントを追加:-) – cnicutar