Click here to Skip to main content
16,004,647 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: C++20 UNORDERED_MAP OBJECT WITH CLASS FUNCTIONS FROM DLL AS VALUE Pin
Richard MacCutchan23-Jul-24 5:14
mveRichard MacCutchan23-Jul-24 5:14 
QuestionglReadPixels unmatched values Pin
etechX224-Jul-24 18:40
etechX224-Jul-24 18:40 
AnswerRe: glReadPixels wrong values Pin
Victor Nijegorodov21-Jul-24 19:53
Victor Nijegorodov21-Jul-24 19:53 
QuestionC program(homework) Pin
Member 1631107418-Jul-24 20:36
Member 1631107418-Jul-24 20:36 
AnswerRe: C program(homework) Pin
OriginalGriff18-Jul-24 20:37
mveOriginalGriff18-Jul-24 20:37 
GeneralRe: C program(homework) Pin
Member 1631107418-Jul-24 20:50
Member 1631107418-Jul-24 20:50 
GeneralRe: C program(homework) Pin
OriginalGriff18-Jul-24 20:59
mveOriginalGriff18-Jul-24 20:59 
GeneralRe: C program(homework) Pin
Member 1631107418-Jul-24 21:23
Member 1631107418-Jul-24 21:23 
C
#include <stdio.h>
#include <string.h>

#define MAX_STRINGS 3
#define MAX_LENGTH 512

// Function to perform search and replace
void searchAndReplace(char text[][MAX_LENGTH], int numStrings, const char* searchStr, const char* replaceStr) {
    int replaced = 0;

    for (int i = 0; i < numStrings; ++i) {
        char buffer[MAX_LENGTH];
        char* pos;
        size_t searchLen = strlen(searchStr);
        size_t replaceLen = strlen(replaceStr);

        // Copy original string to buffer
        strcpy_s(buffer, text[i]);

        // Perform the replacement
        while ((pos = strstr(buffer, searchStr)) != NULL) {
            // Print the original string before replacement
            if (!replaced) {
                printf("%s\n", text[i]);
                replaced = 1;
            }

            // Perform the replacement
            size_t len = strlen(pos + searchLen);
            memmove(pos + replaceLen, pos + searchLen, len + 1);
            memcpy(pos, replaceStr, replaceLen);
        }

        // Print the modified string if it was replaced
        if (replaced) {
            printf("%s\n", buffer);
            replaced = 0; // Reset for the next string
        }
    }
}

int main() {
    // Prepare the strings in full-width characters
    char strings[MAX_STRINGS][MAX_LENGTH] = {
        "18歳と81歳の違い。18歳は恋に溺れる人で、81歳はお風呂に溺れる人。18歳は道を走り、逆もまた然り。81歳の人が走っている。18歳は心がもろく、81歳は骨がもろい。私は18歳で心臓が止まらない。",
        "81歳の彼は飛行機を止められない。18歳は恋に窒息することができ、81歳は餅に窒息することができる。偏差値が気になる。私は18歳で、81歳で血圧と血糖値を気にしている。まだ何も知らない18歳、もう何も覚えていない81歳。",
        "自分を探している18歳と、みんなを探している81歳。"
    };

    // Display the original strings
    printf("Original strings:\n");
    for (int i = 0; i < MAX_STRINGS; ++i) {
        printf("%s\n", strings[i]);
    }

    // Input search and replacement strings
    char searchStr[11], replaceStr[11];
    printf("Enter search string (up to 10 characters): ");
    fgets(searchStr, sizeof(searchStr), stdin);
    searchStr[strcspn(searchStr, "\n")] = '\0'; // Remove newline character
    printf("Enter replacement string (up to 10 characters): ");
    fgets(replaceStr, sizeof(replaceStr), stdin);
    replaceStr[strcspn(replaceStr, "\n")] = '\0'; // Remove newline character

    // Ensure searchStr and replaceStr are within the allowed length
    if (strlen(searchStr) > 10 || strlen(replaceStr) > 10) {
        fprintf(stderr, "Search and replacement strings must be up to 10 characters long.\n");
        return 1;
    }

    // Process and replace
    int found = 0;
    for (int i = 0; i < MAX_STRINGS; ++i) {
        if (strstr(strings[i], searchStr) != NULL) {
            found = 1;
            searchAndReplace(strings, MAX_STRINGS, searchStr, replaceStr);
        }
    }

    // Output message if nothing was changed
    if (!found) {
        printf("Nothing is changed.\n");
    }

    return 0;
}

this is best one I tried and it does not replace the words on the original string.

[edit]
OriginalGriff: code block added
[/edit]

modified 19-Jul-24 3:37am.

GeneralRe: C program(homework) Pin
OriginalGriff18-Jul-24 21:38
mveOriginalGriff18-Jul-24 21:38 
GeneralRe: C program(homework) Pin
Member 1631107418-Jul-24 21:48
Member 1631107418-Jul-24 21:48 
GeneralRe: C program(homework) Pin
OriginalGriff19-Jul-24 1:17
mveOriginalGriff19-Jul-24 1:17 
GeneralRe: C program(homework) Pin
OriginalGriff19-Jul-24 1:21
mveOriginalGriff19-Jul-24 1:21 
SuggestionRe: C program(homework) Pin
David Crow19-Jul-24 4:56
David Crow19-Jul-24 4:56 
GeneralRe: C program(homework) Pin
RedDk19-Jul-24 7:16
RedDk19-Jul-24 7:16 
GeneralRe: C program(homework) Pin
David Crow19-Jul-24 3:00
David Crow19-Jul-24 3:00 
QuestionHow to use QUERY_CHANGES_VIRTUAL_DISK_RANGE when HyperV backup Pin
DingHuaming17-Jul-24 18:39
DingHuaming17-Jul-24 18:39 
AnswerRe: How to use QUERY_CHANGES_VIRTUAL_DISK_RANGE when HyperV backup Pin
jschell18-Jul-24 14:24
jschell18-Jul-24 14:24 
GeneralRe: How to use QUERY_CHANGES_VIRTUAL_DISK_RANGE when HyperV backup Pin
DingHuaming18-Jul-24 17:04
DingHuaming18-Jul-24 17:04 
GeneralRe: How to use QUERY_CHANGES_VIRTUAL_DISK_RANGE when HyperV backup Pin
Dave Kreskowiak18-Jul-24 17:25
mveDave Kreskowiak18-Jul-24 17:25 
GeneralRe: How to use QUERY_CHANGES_VIRTUAL_DISK_RANGE when HyperV backup Pin
DingHuaming18-Jul-24 19:48
DingHuaming18-Jul-24 19:48 
QuestionCode change request (From Linux To Windows) Pin
Member 1614369414-Jul-24 21:30
Member 1614369414-Jul-24 21:30 
AnswerRe: Code change request (From Linux To Windows) Pin
Maximilien15-Jul-24 8:00
Maximilien15-Jul-24 8:00 
GeneralRe: Code change request (From Linux To Windows) Pin
Member 1614369416-Jul-24 22:08
Member 1614369416-Jul-24 22:08 
GeneralRe: Code change request (From Linux To Windows) Pin
Richard Deeming16-Jul-24 22:16
mveRichard Deeming16-Jul-24 22:16 
QuestionC++ DLL Debugging - Visual Studio 2022 Pin
PaulS_UK9-Jul-24 8:20
PaulS_UK9-Jul-24 8:20 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.