954,496 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Concatenation - append 2nd half of a string to another

I need to prompt the user to enter two strings and then create a third string with the first half of string1 and the second half of string2. I was able to put the first half of string1 into string3 but I cannot figure out how to put the second half of string2 into string 3. Here's my code:

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <string.h>

int main ()
{	
	char string1[255], string2[255], string3[255];
	int string1Len = 0, string2Len = 0;
	
	printf ("Enter String 1: ");
	fgets (string1, 255, stdin);
	string1[strlen(string1) - 1] = '\0';
	string1Len = strlen(string1);

	printf ("Enter String 2: ");
	fgets (string2, 255, stdin);
	string2[strlen(string2) - 1] = '\0';
	string2Len = strlen(string2);
	
	printf ("String 1 is %d bytes long and String 2 is %d bytes long.\n", string1Len, string2Len);
	
	strncpy (string3, string1, string1Len / 2);
	string3[string1Len / 2] = '\0';
	strcat (string3, " ");
		
	strncat (string3, string2, string2Len / 2);    
	printf ("String 3 is: %s\n", string3);

    system("pause");
    	
	return 0;
}
student2012
Newbie Poster
6 posts since Feb 2012
Reputation Points: 10
Solved Threads: 0
 

strcat (string3, &string2[start-of-second-half]);
This passes the address of the position ofstring2 you want to add.

WaltP
Posting Sage w/ dash of thyme
Moderator
10,505 posts since May 2006
Reputation Points: 3,348
Solved Threads: 944
 
strcat (string3, &string2[start-of-second-half]); This passes the address of the position ofstring2 you want to add.

What do you put if the position of the beginning of the second half is unknown, since this is from user input?

student2012
Newbie Poster
6 posts since Feb 2012
Reputation Points: 10
Solved Threads: 0
 

Is the second half of string2 preceded by a space?

zeroliken
Veteran Poster
1,106 posts since Nov 2011
Reputation Points: 201
Solved Threads: 162
 
Is the second half of string2 preceded by a space?

Yes I put one in.

strcat (string3, " ");
student2012
Newbie Poster
6 posts since Feb 2012
Reputation Points: 10
Solved Threads: 0
 

Do you just need to copy 1 word or is it a sentence that you need to copy the whole second half of the sentence?

well you could do it like this
use strtok for the string 2 and set space as the delimeter
once it's at its second iteration then you could copy the content to string3

zeroliken
Veteran Poster
1,106 posts since Nov 2011
Reputation Points: 201
Solved Threads: 162
 

why you use strcat() method....you can try use loop read char by char and place in third string

mani-hellboy
Junior Poster in Training
69 posts since Feb 2012
Reputation Points: 0
Solved Threads: 7
 
why you use strcat() method....you can try use loop read char by char and place in third string

what is the syntax for that?

student2012
Newbie Poster
6 posts since Feb 2012
Reputation Points: 10
Solved Threads: 0
 
why you use strcat() method....you can try use loop read char by char and place in third string


My guess is that the purpose of thefunction is to concatinate strings, which is also (surprisingly) the object of the assignment.

What do you put if the position of the beginning of the second half is unknown, since this is from user input?


If you don't know where "the position of the beginning of the second half is, you can't do the program. I assume you need to figure out where the second half starts.

WaltP
Posting Sage w/ dash of thyme
Moderator
10,505 posts since May 2006
Reputation Points: 3,348
Solved Threads: 944
 

My guess is that the purpose of the function is to concatinate strings, which is also (surprisingly) the object of the assignment.

If you don't know where "the position of the beginning of the second half is, you can't do the program. I assume you need to figure out where the second half starts.

Any suggestions as to how I go about that. I've read the chapter over a dozen times and done a ton of research online but I still can't figure out what I'm missing.

student2012
Newbie Poster
6 posts since Feb 2012
Reputation Points: 10
Solved Threads: 0
 

Given: sentence 1 = "This it the time to fly"
Given: sentence 2 = ""To err is human, to really foul things up takes a computer"

What is the resulting sentence supposed to be? Not by computer. By definition of the assignment.

WaltP
Posting Sage w/ dash of thyme
Moderator
10,505 posts since May 2006
Reputation Points: 3,348
Solved Threads: 944
 

Given: sentence 1 = "This it the time to fly" Given: sentence 2 = ""To err is human, to really foul things up takes a computer"

What is the resulting sentence supposed to be? Not by computer. By definition of the assignment.


First half of string 1 would be: This is the
Second half of string 2 would be: ul things up takes a computer

It would display as: "This it the ul things up takes a computer"

student2012
Newbie Poster
6 posts since Feb 2012
Reputation Points: 10
Solved Threads: 0
 

First half of string 1 would be: This is the Second half of string 2 would be: ul things up takes a computer

It would display as: "This it the ul things up takes a computer"


How do you figure this?
What did you do to arrive at "This is the" and "ul things up takes a computer"?
Put that into code...

How long is a sentence? How can you figure that out in code?
What's half a sentence?
etc, etc...
'Tis simplicity itself when you stop thinking in terms of the end product, and think in terms of one step at a time.

Remember, a journey of a thousand miles begins with a single step. Then another. And another. Until you drop 10 feet before the gate in exhaustion. No wait -- that's not how it goes. :icon_wink:

WaltP
Posting Sage w/ dash of thyme
Moderator
10,505 posts since May 2006
Reputation Points: 3,348
Solved Threads: 944
 
strcat (string3, &string2[start-of-second-half]); This passes the address of the position of string2 you want to add.

start of second half can be calculated by using strlen and half of it.

shanki himanshu
Light Poster
37 posts since Dec 2010
Reputation Points: 9
Solved Threads: 1
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You
View similar articles that have also been tagged: