By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,192 Members | 802 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,192 IT Pros & Developers. It's quick & easy.

Hi

P: n/a
Hello,
friends
iam giving you all trouble one more time
here i have string
*p ="god is great";
i want to print it like " great is god"
any one suggest me how to do this
Thanking you
Reddy

Jun 22 '06 #1
Share this Question
Share on Google+
9 Replies


P: n/a
posted:
Hello,
friends
iam giving you all trouble one more time
here i have string
*p ="god is great";
i want to print it like " great is god"
any one suggest me how to do this


Yes, as follows:

#include <stdio.h>

int main()
{
char *p = "god is great";

p = " great is god";

printf(p);
}
Jun 22 '06 #2

P: n/a
hey iam asking... some sort of code

Jun 22 '06 #3

P: n/a
On 2006-06-22, pn*********@gmail.com <pn*********@gmail.com> wrote:
Hello,
friends
iam giving you all trouble one more time
here i have string
*p ="god is great";
i want to print it like " great is god"
any one suggest me how to do this
Thanking you
Reddy


int main (void)
{
char p[] = "god is great";
/* String modification code here */
return 0;
}

Now, complete that and post again if you need help.

--
Andrew Poelstra < http://www.wpsoftware.net/blog >
To email me, use "apoelstra" at the above address.
I know that area of town like the back of my head.
Jun 22 '06 #4

P: n/a


pn*********@gmail.com wrote On 06/22/06 12:25,:
hey iam asking... some sort of code


You need to learn how to ask if you want an answer.
First, when replying to a Usenet message you should always
quote enough context so that someone who sees your reply
in isolation can still understand what is going on. For
an example, look at Frederick Gotham's reply to your first
message in this thread.

Second -- and this applies to all kinds of questions,
not just those asked on Usenet -- learn how to ask a definite
question. Frederick's reply was a way of demonstrating that
your question was not definite: He provided code that does
exactly what you asked, but was almost certainly not what
you wanted. Why? Is he cruel? Does he delight in pulling
the wings off butterflies? Probably not: He simply has no
way to know just what it is that you want!

You said that you wanted to start with "god is great"
and print " great is god". Presumably, you intended these
two strings to illustrate some kind of transformation that
could also be applied to other strings -- but what is the
nature of the transformation you are thinking of? Part of
it might be reversing the order of the words, but the rule
for inserting the extra space is not at all clear. Or it
might be far more complicated: Perhaps you're looking for
a full-scale grammatical analysis of the input, identifying
the subject, verb, and predicate, and then rearranging them
in a grammatical way (so "green carrots are weird" becomes
"weird are green carrots" and not "weird are carrots green").
You have given no useful information about the task you are
trying to accomplish, so no one is able to give useful advice
about how to accomplish it.

Have you run into those so-called "intelligence" tests
where you are given a few elements of a sequence and asked
what comes next?

2 4 6 8 ___?

1 2 4 8 ___?

2 3 5 7 ___?

The question you asked was the equivalent of

6 ___?

.... and you should not be surprised if the answers you receive
are unsatisfactory.

--
Er*********@sun.com

Jun 22 '06 #5

P: n/a
Eric Sosman posted:

You need to learn how to ask if you want an answer.

<snip>
Well written.
Jun 22 '06 #6

P: n/a
posted:
Hello,
friends
iam giving you all trouble one more time
here i have string
*p ="god is great";
i want to print it like " great is god"
any one suggest me how to do this
Thanking you
Reddy

Just for the heck of it, I'll try write a word reversal algorithm:

(Unchecked, inefficient code. I've no compiler at the moment to test this
out on... so there might be a few thousand little errors)

#include <stddef.h>
#include <string.h>
#include <stdlib.h>

void ReverseWords( char * const p_arg )
{
/* First get the string's length */

size_t const len = strlen(p_arg);

/* Now allocate a buffer of equal length */

char * const p_buf = malloc( len + 1 );

/* Get the address of the last character */

char *p_end = p_arg + len - 1;
/* Make a pointer to point to the "current character"
in the buffer */

char *p_buf_char = p_buf;
char *p_backwards;

/* Now iterate backwards through the string,
stopping where we find a space */
for( p_backwards = p_end; p_backwards != p_arg; --p_backwards )
{
if ( ' ' == *p_start )
{
size_t const amount_chars = p_end - p_backwards;

memcpy( p_buf_char, p_backwards + 1, amount_chars );

p_buf_char += amount_chars;

p_end = p_backwards;
}
}

memcpy( p_buf_char, p_backwards, p_end - p_backwards );

memcpy( p_arg, p_buf, len + 1 );

free( p_buf );

}
Jun 22 '06 #7

P: n/a


Frederick Gotham wrote On 06/22/06 14:11,:
posted:

Hello,
friends
iam giving you all trouble one more time
here i have string
*p ="god is great";
i want to print it like " great is god"
any one suggest me how to do this
Thanking you
Reddy


Just for the heck of it, I'll try write a word reversal algorithm:
[...]


Oooh! Oooh! Me, too!

#include <stdio.h>
#include <string.h>
#define WHITE_SPACE " \t\n" /* others as desired */

void destructive_reverse_print(char *str) {
char *word = strtok(str, WHITE_SPACE);
if (word != NULL) {
destructive_reverse_print(NULL);
printf (" %s", word);
}
if (str != NULL)
putchar ('\n');
}

int main(void) {
char str[] = "god is great";
destructive_reverse_print(str);
return 0;
}

Side benefit: This code even manages to produce the
O.P.'s leading space!

--
Er*********@sun.com

Jun 22 '06 #8

P: n/a
Hello,

There is a library function 'strrtok' which exactly does what
'destructive_reverse_print()' recursive function does.

Thanks
Veda

Eric Sosman wrote:
Frederick Gotham wrote On 06/22/06 14:11,:
posted:

Hello,
friends
iam giving you all trouble one more time
here i have string
*p ="god is great";
i want to print it like " great is god"
any one suggest me how to do this
Thanking you
Reddy


Just for the heck of it, I'll try write a word reversal algorithm:
[...]


Oooh! Oooh! Me, too!

#include <stdio.h>
#include <string.h>
#define WHITE_SPACE " \t\n" /* others as desired */

void destructive_reverse_print(char *str) {
char *word = strtok(str, WHITE_SPACE);
if (word != NULL) {
destructive_reverse_print(NULL);
printf (" %s", word);
}
if (str != NULL)
putchar ('\n');
}

int main(void) {
char str[] = "god is great";
destructive_reverse_print(str);
return 0;
}

Side benefit: This code even manages to produce the
O.P.'s leading space!

--
Er*********@sun.com


Jun 23 '06 #9

P: n/a
Veda said:
There is a library function 'strrtok' which exactly does what
'destructive_reverse_print()' recursive function does.


But it is not a standard library function, and therefore might not be
available on all implementations.

<snip>

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at above domain (but drop the www, obviously)
Jun 23 '06 #10

This discussion thread is closed

Replies have been disabled for this discussion.