ApexLegends
ApexLegends

Reputation: 13

Replacing multiple words in a string sentence C#

Hello guys, I don't need the answer but I would look to know and find out what I'm doing wrong. As a beginner I got a very "easy" assignment in my studies. I need to create a string and inside this string I need to replace some words by other words without using the for loop as so: ( also I want to print it but I got no clue where to put Console.WriteLine and google searching for 1 hour didn't work or asking a colleage.

/* Excersice: use with stringbuilder * cat becomes littlecat * dog becomes littledog * mouse becomes littlemouse * words the must be replace by a * do not use a loop*/


using System;
using System.Collections.Generic;
using System.Text;

namespace Opgavens_leerpad_3_oefening
{
    class Program
    {
        static string Main(string[] args)
        {
            StringBuilder sb = new StringBuilder();

            string dogCat = new string("Can the cat find the mouse without waking the dog.");

            static string replacethisstring(string dogCat);
            {
                hondKat = dogCat.Replace("cat", "littlecat");
                hondKat = dogCat.Replace("dog", "littldog");
                hondKat = dogCat.Replace("mouse", "littlemouse");
                hondKat = dogCat.Replace("the", "a");
                return dogCat;
            }
        }
    }
}

Error CS5001: Program does not contain a static "Main" method suitable for an entry point ( I don't get this doesn't almost any program starts with this static Main args? )

Error CS8112: replacethisstring(string)' is a local function and must therefore always have a body. ( I just gave it a body right? I opened the { and close it } and put a replace with return. )

Upvotes: 1

Views: 477

Answers (3)

Pablo Recalde
Pablo Recalde

Reputation: 3571

The method declaration ends with ; that’s the reason for CS8112

The Main method has to return void (or ‘int’ )you’ve modified it to string, that’s the reason for CS5001

If you want the program to print the output on the console use:

using System;

....

 Console.WriteLine(output)

Upvotes: 3

Jawad
Jawad

Reputation: 11364

  1. Your main should have a void as return type. string is not allowed but int is an option (see reference)
  2. You cannot have ; at the end of a function declaration that has a body to it.
  3. You have to declare a variable before you can use it ... string hondKat;
  4. See the use of StringBuilder in the below code instead of string.
namespace Opgavens_leerpad_3_oefening
{
    class Program
    {
        public static void Main(string[] args)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("Can the cat find the mouse without waking the dog.");
            sb = replacethisstring(sb);

            Console.WriteLine(sb.ToString());
            Console.ReadLine(); // To Stop the Console from closing.

            static StringBuilder replacethisstring(StringBuilder dogCat)
            {
                dogCat = dogCat.Replace("cat", "littlecat");
                dogCat = dogCat.Replace("dog", "littldog");
                dogCat = dogCat.Replace("mouse", "littlemouse");
                dogCat = dogCat.Replace("the", "a");
                return dogCat;
            }

        }
    }
}

You can place the function within the Main or outside. Normally you would find functions outside of the Main class.

    public static void Main(string[] args)
    {
    ...
    }

    public static string replacethisstring(string dogCat)
    {
    ...
    }

Upvotes: 1

Umut OVECOGLU
Umut OVECOGLU

Reputation: 162

Having several issues like typos, syntax error etc. Additionally, the excercise having a condition that needs to use with stringbuilder.

So, try this.

    static void Main(string[] args)
    {
        StringBuilder sb = new StringBuilder("Can the cat find the mouse without waking the dog?");
        sb = replacethisstring(sb);

        Console.WriteLine(sb.ToString());
        Console.ReadLine();
    }

    static StringBuilder replacethisstring(StringBuilder dogCat)
    {
        StringBuilder hondKat = dogCat.Replace("cat", "littlecat");
        hondKat = dogCat.Replace("the", "a");
        hondKat = dogCat.Replace("dog", "littledog");
        hondKat = dogCat.Replace("mouse", "littlemouse");
        return hondKat;
    }

Upvotes: 0

Related Questions