एक अन्य कारण strcmp()
रिटर्न कोड यह, इतना है कि यह मानक पुस्तकालय समारोह qsort()
में सीधे इस्तेमाल किया जा सकता है आप तार की एक सरणी सॉर्ट करने के लिए अनुमति देता है करता है:
#include <string.h> // for strcmp()
#include <stdlib.h> // for qsort()
#include <stdio.h>
int sort_func(const void *a, const void *b)
{
const char **s1 = (const char **)a;
const char **s2 = (const char **)b;
return strcmp(*s1, *s2);
}
int main(int argc, char **argv)
{
int i;
printf("Pre-sort:\n");
for(i = 1; i < argc; i++)
printf("Argument %i is %s\n", i, argv[i]);
qsort((void *)(argv + 1), argc - 1, sizeof(char *), sort_func);
printf("Post-sort:\n");
for(i = 1; i < argc; i++)
printf("Argument %i is %s\n", i, argv[i]);
return 0;
}
इस छोटे नमूना कार्यक्रम अपने तर्कों पर क्रमबद्ध ASCIIBetically (कुछ क्या lexically कॉल करेंगे)। Lookie:
$ gcc -o sort sort.c
$ ./sort hi there little fella
Pre-sort:
Argument 1 is hi
Argument 2 is there
Argument 3 is little
Argument 4 is fella
Post-sort:
Argument 1 is fella
Argument 2 is hi
Argument 3 is little
Argument 4 is there
तो strcmp()
लौटे 1
(सही) बराबर तार और 0
(गलत) inequal लोगों के लिए के लिए, यह इसका इस्तेमाल करने डिग्री प्राप्त करने के लिए असंभव हो जाएगा या दिशा असमानता के (यानी कैसे अलग-अलग, और कौन सा बड़ा है) दो तारों के बीच, इस प्रकार इसे सॉर्टिंग फ़ंक्शन के रूप में उपयोग करना असंभव बना देता है। सूचक अंकगणित, सूचक recasting, और समारोह संकेत - -
मैं नहीं जानता कि आप कोड ऊपर सी के साथ कैसे परिचित हैं सी के सबसे भ्रामक अवधारणाओं में से कुछ का उपयोग करता है ताकि आप उस कोड, डॉन के कुछ समझ में नहीं आता है, तो चिंता मत करो, आप समय पर वहां पहुंच जाएंगे। तब तक, आपके पास StackOverflow पर पूछने के लिए बहुत सारे मज़ेदार प्रश्न होंगे। ;)
स्रोत
2009-09-02 04:58:48
समय = पैसे सीधे - आपको पहले एक इकाई रूपांतरण को रोजगार के लिए है!। –
जो भी इस स्पैम प्रश्न को नए लोगों के लिए संभावित रूप से उपयोगी बनाने में मदद करता है। मैं अभी भी इसके लिए मतदान करने को तैयार नहीं हूं, फिर भी यह ओपी को इस तरह के ट्रिप को दोबारा पोस्ट करने के लिए प्रोत्साहित नहीं करता है। – rmeador
@remeador: धन्यवाद, लेकिन ओपी का अपमान नहीं करते हैं। – GEOCHET