Click here to Skip to main content
15,946,316 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
PinnedHOW TO ANSWER A QUESTION PinPopular
Chris Maunder12-Jul-09 22:37
cofounderChris Maunder12-Jul-09 22:37 
PinnedHOW TO ASK A QUESTION PinPopular
Chris Maunder12-Feb-09 17:19
cofounderChris Maunder12-Feb-09 17:19 
QuestionC++20 UNORDERED_MAP OBJECT WITH CLASS FUNCTIONS FROM DLL AS VALUE Pin
Oscar Kogosov 202322-Jul-24 20:37
Oscar Kogosov 202322-Jul-24 20:37 
AnswerRe: C++20 UNORDERED_MAP OBJECT WITH CLASS FUNCTIONS FROM DLL AS VALUE Pin
Richard MacCutchan23-Jul-24 0:48
mveRichard MacCutchan23-Jul-24 0:48 
GeneralRe: C++20 UNORDERED_MAP OBJECT WITH CLASS FUNCTIONS FROM DLL AS VALUE Pin
Oscar Kogosov 202320hrs 21mins ago
Oscar Kogosov 202320hrs 21mins ago 
GeneralRe: C++20 UNORDERED_MAP OBJECT WITH CLASS FUNCTIONS FROM DLL AS VALUE Pin
Richard MacCutchan20hrs 11mins ago
mveRichard MacCutchan20hrs 11mins ago 
GeneralRe: C++20 UNORDERED_MAP OBJECT WITH CLASS FUNCTIONS FROM DLL AS VALUE Pin
Oscar Kogosov 202320hrs ago
Oscar Kogosov 202320hrs ago 
GeneralRe: C++20 UNORDERED_MAP OBJECT WITH CLASS FUNCTIONS FROM DLL AS VALUE Pin
Richard MacCutchan19hrs 48mins ago
mveRichard MacCutchan19hrs 48mins ago 
QuestionglReadPixels wrong values Pin
etechX221-Jul-24 16:30
etechX221-Jul-24 16:30 
AnswerRe: glReadPixels wrong values Pin
Victor Nijegorodov21-Jul-24 19:53
Victor Nijegorodov21-Jul-24 19:53 
GeneralRe: glReadPixels wrong values Pin
etechX221-Jul-24 20:35
etechX221-Jul-24 20:35 
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 5 days ago.

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 

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.