Home › Forums › C Programming › how to swap a string
- This topic has 2 replies, 3 voices, and was last updated 18 years, 10 months ago by niklaesh.
- AuthorPosts
- January 31, 2006 at 12:05 am #1925sumantkumarsumanParticipant
hi every one I am new to this forum, I want to know how to swap a string without using any of the library functions,
I have a string “helloworld”, now I want to swap it to “worldhello”, without using any of the library functions,
please help
thank you
with regards
chaitanya - February 2, 2006 at 10:51 pm #3174arun_raj7Participant
@ahsun
Unless you are saving the source to the include directory and compiling from thereof, you need the brackets “<" & ">” around the include headers, not just quotes. Also, I am pretty sure he wasnt looking for a program to print two strings to output, Im pretty sure he was looking to get the string the user wanted to “swap” and then “swap” it.
@chaitanya.b
Im not sure quite how you mean. A program would have to use some major heuristics to be able to decipher something of that sort. Maybe you are talking about something that would do something like this:
“hello im a string”
“string a im hello”If that is so then you can use strtok() to truncate the string to whitespace then print them in reverse order. If you wish to not use the library functions to reverse the string itself, you can write a strtok() function yourself and use it that way. Mainly, you would have to use homebrew functions to do the work for you, lets see if i can dig up some source code I may have laying around somewhere…
Ok here are some examples of the functions, I dont remember who wrote them but I guess they work… I have never used them so dont expect anything great…
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#define NULL ' ';<br />// my strcmp() function<br />int mCmp(char *f, char *s)<br />{<br />if (f==s)<br />return 0;<br />return 1;<br />}<br />// my string length<br />int mslen(char *ch)<br />{<br />char[] bf = ch;<br />int y=0;<br />do{<br />y++;<br />}while (bf[y]!=NULL);<br />return y;<br />}<br />//my strtok() example<br />char* mstrtok(char *first, const char *sec)<br />{<br />char[] buff; //first buffer<br />char[] buf; //second buffer<br />buff = first; // initialize first buffer<br />buf[0]=buff[0]; // initialize second<br />for (int x=0;x<mslen(buff);x++)<br />{<br />if (mCmp(buff[x],(char *)sec)<br />return &buf; // if our next character equals the control character we will end and return buf<br />buf[x]=buff[x];//copy next bit<br />}<br />//if this point should be reached then return the string<br />return &buf;<br />}<br />// my concat example - strcat()<br />char* mconcat(char *fir, char *sec)<br />{<br />int y=0;<br />for (int x = 0;x<mslen(fir);x++)<br />{<br />if (fir[x]==NULL)<br />{<br />x--;<br />for (y=0;y<mslen(sec);y++)<br />x++;fir[x] = sec[y];<br />return fir;<br />}<br />}<br />} - February 4, 2006 at 11:59 am #3175niklaeshParticipant
Bloodrager he didnt mention that he wanted to get input from the user. I made the programme according to the cituation he placed in the post.
Any how thanks for correcting me about “<" ">“, actualy that is mys style of coding. I will try to adopt the changes.
Thanks
- AuthorPosts
- The forum ‘C Programming’ is closed to new topics and replies.