Concatenating array of strings into one string separated by spaces


 
Thread Tools Search this Thread
Top Forums Programming Concatenating array of strings into one string separated by spaces
# 8  
Old 01-19-2009
Quote:
Originally Posted by shamrock
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *get_full_name(const char **t)
{
    char *f=NULL;
    
    while (*t) {
        f = (char *) realloc(f, strlen(*t)+strlen(f)+1);
        sprintf(f,"%s%s%s",f,(strlen(f)?" ":""),*t++);
    }
    return f;
}

int main(int argc, char **argv)
{
    const char *str[] = {"John", "Quincy", "Adams", NULL};
    char *res;

    res = get_full_name(str);
    printf("Result: <%s>\n", res);
    return 0;
}

Hi,

Thats interesting. But it segfaults for me, when it calls to strlen.

Thanks.
# 9  
Old 01-19-2009
Works fine for me...can you post the stack trace.
What platform are you on?
# 10  
Old 01-20-2009
Quote:
Originally Posted by shamrock
Works fine for me...can you post the stack trace.
What platform are you on?
Hi,

Um..I am relatively new to programming in linux, how do I get a stack trace?

Sorry.
# 11  
Old 01-20-2009
Don't know why it would crash on Linux (works fine on AIX) and you say it's strlen that's causing the crash. To get a stack trace do the following and post the output...
Code:
gcc -g file.c
./a.out
gdb ./a.out core
(gdb) bt

# 12  
Old 01-20-2009
Quote:
Originally Posted by shamrock
Don't know why it would crash on Linux (works fine on AIX) and you say it's strlen that's causing the crash. To get a stack trace do the following and post the output...
Code:
gcc -g file.c
./a.out
gdb ./a.out core
(gdb) bt

Ok I did that. It just segfaluted..no core was dumped. And when tried bt it just said "No stack".

Am I doing something wrong?

Thanks.
# 13  
Old 01-20-2009
No core file? that's strange. What compiler and version you got? Maybe the compiler on Linux doesn't like that f is set to NULL so give the code below a try...
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *get_full_name(const char **t)
{
    char *f=(char *) malloc(sizeof(char));
    
    while (*t) {
        f = (char *) realloc(f, strlen(*t)+strlen(f)+1);
        sprintf(f,"%s%s%s",f,(strlen(f)?" ":""),*t++);
    }
    return f;
}

int main(int argc, char **argv)
{
    const char *str[] = {"John", "Quincy", "Adams", NULL};
    char *res;

    res = get_full_name(str);
    printf("Result: <%s>\n", res);
    return 0;
}

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Concatenating 2 lines from 2 files having matching strings

Hello All Unix Users, I am still new to Unix, however I am eager to learn it.. I have 2 files, some lines have some matching substrings, I would like to concatenate these lines into one lines, leaving other untouched. Here below is an example for that.. File 1 (fasta file): >292183... (6 Replies)
Discussion started by: Mohamed EL Hadi
6 Replies

2. Shell Programming and Scripting

Lex: concatenating word into array of c-strings

Alright, so I'm writing a file for the lexical analyzer (lex). It will be used to check C code (collecting the identifiers and storing those names along with the line numbers the identifier was found on). I'm not used to 'C' so I'm having some difficulty. I am using a function (insertId()) to... (4 Replies)
Discussion started by: D2K
4 Replies

3. Shell Programming and Scripting

Loop through array of arrays of string with spaces

Hi I'm trying to loop through an array that contains other arrays and these arrays consist of strings with spaces. The problem is that I can't seem to preserve the spacing in the string. The string with spaces are either divided into multiple items if I change IFS to \n or all the elements of... (4 Replies)
Discussion started by: kidmanos
4 Replies

4. Shell Programming and Scripting

Concatenating words without spaces.

Hi All, I have written a C program to solve this problem but I am eager to know whether the same output can be obtained using sed or awk? This is the input: star ferry computer symbol prime time This is the output: starferry ferrycomputer computersymbol symbolprime primetime (7 Replies)
Discussion started by: shoaibjameel123
7 Replies

5. Shell Programming and Scripting

grep on string separated by spaces

hi I am on AIX 5 and i have a script that runs the following command to list processes running. I then want to kill the returned processes. The PID are on field 2 separated by spaces. $ ps -ef|grep "rams.e $PORT" lesqa 1826998 2646248 0 11:20:35 pts/2 0:00 grep rams.e t24cm 2789380 ... (3 Replies)
Discussion started by: dustytina
3 Replies

6. Shell Programming and Scripting

Concatenating strings and run it in bash

Hi, all, I tried to write a simple shell script as follow: #!/bin/bash # What want to do in bash is following # : pcd_viewer cloud_cluster_0.pcd cloud_cluster_1.pcd cloud_cluster_2.pcd cloud_cluster_3.pcd cloud_cluster_4.pcd STR = "pcd_viewer" for i in `seq 0 4` do STR... (1 Reply)
Discussion started by: bedeK
1 Replies

7. Shell Programming and Scripting

Problem in concatenating two Strings

Hi Friends, I'm new to shell scripting and trying to concatenate two Strings to create a filepath like string but I'm getting an unexpected result. here is my code for 'runToneUserLoad.sh': script_dir="$(dirname $0)" echo "Script Dir:$script_dir" dirtest1="/installedUtility"... (6 Replies)
Discussion started by: kuldeept
6 Replies

8. Shell Programming and Scripting

concatenating strings

I m new to shell scripting and what i want is take as an i/p from command line the name of the file and inside my script i should redirect the o/p of my few commands to this file concatenated with .txt for example if i give ./linux filename i should get the o/p in filename.txt i need to... (2 Replies)
Discussion started by: tulip
2 Replies

9. Shell Programming and Scripting

concatenating strings..

hey guys.. probably a simple question but i cant seem to find any info on it. i have a small array of strings, and i want to concatenate the contents of the array into one big string. any ideas on how i can do this? cheers. (2 Replies)
Discussion started by: jt_csv
2 Replies

10. Shell Programming and Scripting

Concatenating Strings

Is there any function to concatenate strings in shell script (2 Replies)
Discussion started by: radhika03
2 Replies
Login or Register to Ask a Question