में एक स्ट्रिंग में शब्द क्रम पीछे मैं, जैसे जगह में एक वाक्य में शब्दों का क्रम उल्टा करने के लिए कोशिश कर रहा हूँ:जगह
यह वाक्य शब्द उलट कर रहे हैं।
उलट हो जाता है। शब्द वाक्य यह
यह मैं अब तक जो लगभग काम करता है क्या है, है: मैं strrev फ़ंक्शन का उपयोग स्ट्रिंग उल्टा करने के लिए, और फिर inprev समारोह व्यक्तिगत रूप से strrev कार्य करने के लिए प्रत्येक शब्द को भेजने के लिए, उल्टा करने के लिए उन्हें मूल अभिविन्यास पर वापस, लेकिन उलट क्रम में। स्ट्रैव फ़ंक्शन की शुरुआत और अंत के लिए पॉइंटर भेजना थोड़ा मूर्खतापूर्ण प्रतीत हो सकता है, लेकिन यह उसी फ़ंक्शन को inprev() में उपयोग करने की अनुमति देता है, जो व्यक्तिगत शब्दों की शुरुआत और अंत में सूचक को भेजता है।
Foobar अपने दोस्तों, foobar
raboof, sdneirf ym rabooF
foobarfriends, मेरे Foobar
समस्या यह है कि यह है:
#include <stdio.h>
#include <string.h>
void strrev(char * start, char * end);
void inprev(char * start);
int main(void)
{
char str[] = "Foobar my friends, foobar";
char * end = (str + strlen(str) -1);
puts(str);
strrev(str, end);
puts(str);
inprev(str);
puts(str);
return 0;
}
void strrev(char * start, char * end)
{
char temp;
while (end > start)
{
temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
void inprev(char * start)
{
char * first = start;
char * spcpnt = start;
while (*spcpnt)
{
while (*spcpnt != ' ' && *spcpnt)
spcpnt++;
strrev(start, spcpnt-1); // removing the -1 sends the space on the
start = spcpnt++; // other side to be reversed, doesn't stop
// the problem.
}
}
यहाँ उत्पादन होता है अंतिम शब्द के अंत में अंतिम स्थान की कमी का मतलब है टी टोपी उस शब्द और अंतिम स्ट्रिंग में आगे बढ़ने के बीच एक जगह गायब है, और इसके बजाय अंतिम शब्द के अंत में फेंक दिया जाता है, जो मूल स्ट्रिंग में पहला शब्द था। शब्द के दूसरी तरफ अंतरिक्ष को भेजना केवल समस्या को कहीं और ले जाता है। क्या कोई समाधान देख सकता है?
एक्स स्पेस का सामना करते समय आपको क्या करना चाहिए? क्या वे पहले या बाद में शब्द से संबंधित हैं? – RedX
+1 अच्छी समस्या :)। यदि मेरे पास थोड़ा समय होगा तो मैं समाधान प्रदान करूंगा –
मुझे लगता है कि आप पहले अक्षर को एक बड़ा नहीं बनाना चाहते हैं, क्योंकि आपका उदाहरण दिखाता है ... – imacake