Sponsored Content
Top Forums Programming Merge two strings by overlapped region Post 302895993 by Corona688 on Thursday 3rd of April 2014 05:12:38 PM
Old 04-03-2014
Code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void strmerg(char * const out, const char *str1, const char *str2) {
        // Position in 'str1'.  Counts backwards from end.
        // Each loop, str1+a will be 1 longer, i.e.  "t", "at", "tat", "atat", "Gatat"...
        int a=strlen(str1)-1;
        // How many bytes of overlap has been found.  0 if none.
        int found=0;
        // How many characters of overlap to check for.  Counts up from 1.
        int b=1;

        while(a >= 0) // Loop until a is negative
        {
                // Compare the last 'b' bytes of str1, to the first 'b' bytes of str2.
                // Using strncmp instead of strcmp prevents it from checking ALL of str2,
                // because strncmp takes maximum length as an argument.
                // It will return 0 if they are equal.
                if(strncmp(str1+a, str2, b) == 0) found=b;
                a--;
                b++;
        }

        strcpy(out, str1);
        // Strip off the first 'found' characters of str2.
        strcat(out, str2+found);
}

int main(int argc, char *argv[])
{
        char out[4096];
        if (argc != 3) {
                printf("Error! \nUsage: ./%s string1 string2\n", argv[0]);
                exit(EXIT_FAILURE);
        }

        printf("string 1 is %s\n", argv[1]);
        printf("string 2 is %s\n", argv[2]);

        strmerg(out, argv[1], argv[2]);
        printf("Output is %s\n", out);

        return(0);
}

There's probably ways to make strmerg faster.
This User Gave Thanks to Corona688 For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

stack region

how can i determine that what percentage of stack region is currently is used? (i am using tru64 unix) (2 Replies)
Discussion started by: yakari
2 Replies

2. UNIX for Dummies Questions & Answers

Merge two strings not from files

str1="this oracle data base record" str2="one two three four five" Output: this one oracle two data three base four record five str1 and str2 have the same column but they are not fixed columns. I can do it with "paste" but I do not want to create file everytime the script runs from... (2 Replies)
Discussion started by: buddyme
2 Replies

3. UNIX for Advanced & Expert Users

Best practice - determining what region you are on

Hello all, I have a question about what you think the best practice is to determine what region you are running on when you have a system setup with a DEV/TEST, QA, and PROD regions running the same scripts in all. So, when you run in DEV, you have a different directory structure, and you... (4 Replies)
Discussion started by: Rediranch
4 Replies

4. Shell Programming and Scripting

Region between lines

How can I find the regions between specific lines? I have a file which contains lines like this: chr1 0 17388 0 chr1 17388 17444 1 chr1 17444 17599 2 chr1 17599 17601 1 chr1 17601 569791 0 chr1 569791 569795 1 chr1 569795 569808 2 chr1 569808 569890 3 chr1 569890 570047 4 ... (9 Replies)
Discussion started by: linseyr
9 Replies

5. UNIX for Dummies Questions & Answers

overlapped genomic coordinates

Hi, I would like to know how can I get the ID of a feature if its genomic coordinates overlap the coordinates of another file. Example: Get the 4th column (ID) of this file1: chr1 10 100 gene1 chr2 3000 5000 gene2 chr3 200 1500 gene3 if it overlaps with a feature in this file2: chr2... (1 Reply)
Discussion started by: fadista
1 Replies

6. AIX

Change lv REGION in HDISK1

Dears my rootvg is missed up i can not extend the /opt as soon as i try to extend the Filesystem its give me that there is not enough space . as there any way to change the REGION of the LVs in HDISK1 ? lspv -p hdisk0 hdisk0: PP RANGE STATE REGION LV NAME TYPE ... (8 Replies)
Discussion started by: thecobra151
8 Replies

7. Shell Programming and Scripting

Merge left hand strings mapping to different right hand strings

Hello, I am working on an Urdu to Hindi dictionary which has the following structure: a=b a=c n=d n=q and so on. i.e. Headword separated from gloss by a = I am giving below a live sample بتا=बता بتا=बित्ता بتا=बुत्ता بتان=बतान بتان=बितान بتانا=बिताना I need the following... (3 Replies)
Discussion started by: gimley
3 Replies

8. Programming

Perl script to merge cells in column1 which has same strings, for all sheets in a excel workbook

Perl script to merge cells ---------- Post updated at 12:59 AM ---------- Previous update was at 12:54 AM ---------- I am using below code to read files from a dir and print to excel. open(my $in, '<', $file) or die "Could not open file: $!"; my $rowCount = 0; my $colCount = 0;... (11 Replies)
Discussion started by: Jack_Bruce
11 Replies

9. Shell Programming and Scripting

Merge strings from a file into a template

I am preparing a morphological grammar of Marathi to be placed in open-source. I have two files. The first file called Adverbs contains a whole list of words, one word per line A sample is given below: आधी इतक इतपत उलट एवढ ऐवजी कड कडनं कडल कडील कडून कडे करता करिता खाल (2 Replies)
Discussion started by: gimley
2 Replies

10. Shell Programming and Scripting

Merge strings with ignore case

I have a bi-lingual database of a large number of dictionaries. It so happens that in some a given string is in upper case and in others it is in lower case. An example will illustrate the issue. toll Tax=पथ-कर Toll tax=राहदारी कर toll tax=टोल I want to treat all three instances of toll tax... (3 Replies)
Discussion started by: gimley
3 Replies
SVK::Merge::Info(3)					User Contributed Perl Documentation				       SVK::Merge::Info(3)

NAME
SVK::Merge::Info - Container for merge ticket information SYNOPSIS
use SVK::Merge::Info; my $minfo = SVK::Merge::Info->new( $svk_merge_property ); DESCRIPTION
An "SVK::Merge::Info" object represents a collection of merge tickets, including repository UUID, path and revision. CONSTRUCTORS
new Takes a single argument with the value of an "svk:merge" property. METHODS
add_target Add a single SVK::Target::Universal or SVK::Path to the collection of merge tickets. del_target Remove a single SVK::Target::Universal or SVK::Path from the collection of merge tickets. remove_duplicated Takes a single SVK::Merge::Info object as an argument. Removes merge tickets which are present in the argument and for which the argument's revision is less than or equal to our revision. subset_of Takes a single SVK::Merge::Info object as an argument. Returns true if our set of merge tickets is a subset of the argument's merge tickets. Otherwise, returns false. is_equal Takes a single SVK::Merge::Info object as an argument. Returns true if our set of merge tickets is equal to argument's. Otherwise, returns false. union Return a new SVK::Merge::Info object representing the union of ourself and the SVK::Merge::Info object given as the argument. resolve verbatim as_string Serializes this collection of merge tickets in a form suitable for storing as an svk:merge property. TODO
Document the merge and ticket tracking mechanism. SEE ALSO
SVK::Editor::Merge, SVK::Command::Merge, Star-merge from GNU Arch perl v5.10.0 2008-08-04 SVK::Merge::Info(3)
All times are GMT -4. The time now is 02:15 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy