We're a community of 1077K IT Pros here for help, advice, solutions, professional growth and fun. Join us!
1,076,153 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Start New Discussion Reply to this Discussion

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;
}
5
Contributors
13
Replies
3 Days
Discussion Span
1 Year Ago
Last Updated
14
Views
student2012
Newbie Poster
6 posts since Feb 2012
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

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

WaltP
Posting Sage w/ dash of thyme
Team Colleague
11,404 posts since May 2006
Reputation Points: 3,421
Solved Threads: 1,055
Skill Endorsements: 37

strcat (string3, &string2[start-of-second-half]); This passes the address of the position of string2 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
Skill Endorsements: 0

Is the second half of string2 preceded by a space?

zeroliken
Nearly a Posting Virtuoso
1,346 posts since Nov 2011
Reputation Points: 214
Solved Threads: 205
Skill Endorsements: 14

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
Skill Endorsements: 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
Nearly a Posting Virtuoso
1,346 posts since Nov 2011
Reputation Points: 214
Solved Threads: 205
Skill Endorsements: 14

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
Skill Endorsements: 0

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
Skill Endorsements: 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 the function 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
Team Colleague
11,404 posts since May 2006
Reputation Points: 3,421
Solved Threads: 1,055
Skill Endorsements: 37

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
Skill Endorsements: 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
Team Colleague
11,404 posts since May 2006
Reputation Points: 3,421
Solved Threads: 1,055
Skill Endorsements: 37

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
Skill Endorsements: 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
Team Colleague
11,404 posts since May 2006
Reputation Points: 3,421
Solved Threads: 1,055
Skill Endorsements: 37

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
Junior Poster
130 posts since Dec 2010
Reputation Points: 37
Solved Threads: 1
Skill Endorsements: 0

This article has been dead for over three months: Start a new discussion instead

Post: Markdown Syntax: Formatting Help
 
You
View similar articles that have also been tagged:
 
© 2013 DaniWeb® LLC
Page rendered in 0.3251 seconds using 2.7MB