Programmieren – die besten Beiträge

C: Wie kann ich ein Pointer-Array anlegen, um die Fundstellen zu speichern?

/* 24_02 dynamische Speicherverwaltung
   demonstriert realloc
   ZUR BEACHTUNG: Dies ist ein reines Demo-Programm!
                  Speicher-Reallokation in 10-Byte-Blöcken ist in der Praxis nicht sinnvoll!
                  Speicherallokation und insbesondere Speicher-Reallokation kosten erhebliche System-Resourcen!
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define STRLEN 10

int Such(char* strPtr, char* Ptr2);

int main()
{
  int n = 1;
  char* strPtr = (char*)malloc(n * STRLEN); // kleinen Speicherblock anfordern
  char* strPtr2 = (char*)malloc(n * STRLEN); // kleinen Speicherblock anfordern
  printf("Bitte Text eingeben: \n");
  fgets(strPtr, STRLEN, stdin); // einlesen
  printf("\n");

  while (strPtr[strlen(strPtr) - 1] != '\n') // Ende erreicht, letztes Zeichen '\n'?
  {
    n++; // Anzahl Blöcke inkrementieren
    strPtr = (char*)realloc(strPtr, n * STRLEN); // größeren Speicher anfordern: n Blöcke
    fgets(strPtr + strlen(strPtr), STRLEN + 1, stdin); // weiter einlesen, terminierende 0 überschreiben, STRLEN + 1 Byte stehen zur Verfügung
  }

  printf("Nach welcher Zeichenfolge soll gesucht werden?\n");
  fgets(strPtr2, STRLEN, stdin); // einlesen
  printf("\n");

  while (strPtr2[strlen(strPtr2) - 1] != '\n') // Ende erreicht, letztes Zeichen '\n'?
  {
    n++; // Anzahl Blöcke inkrementieren
    strPtr2 = (char*)realloc(strPtr2, n * STRLEN); // größeren Speicher anfordern: n Blöcke
    fgets(strPtr2 + strlen(strPtr2), STRLEN + 1, stdin); // weiter einlesen, terminierende 0 überschreiben, STRLEN + 1 Byte stehen zur Verfügung
  }

  printf("Zeichenfolge wurde %i mal gefunden\n", Such(strPtr, strPtr2));
  return 0;
}

int Such(char* strPtr, char* strPtr2)
{
  int n = 0;
  int p = 0;
  int sip = 0;

  int ltext = strlen(strPtr) - 1;
  int lzfolge = strlen(strPtr2) - 1;
  int lgteilt = ltext / lzfolge;
  char* ptrarr[] = { NULL };

  while ((lgteilt) > 0)
  {
    for (int i = 0; i < lzfolge; i++)
    {
      if (strPtr[p] == strPtr2[i])
      {
        sip++;
      }

      p++;
    }

    lgteilt--;
  }

  return (sip / lzfolge);
}

Ich verstehe leider nicht ganz, wie man ein Pointer-Array anlegen soll, um die Fundstellen zu speichern.

Ich habe zwar eine Schleife, aber diese kann z. B. "yay" nicht mit "ay" vergleichen.

Danke für die Hilfe.

Bild zum Beitrag
Computer, Technik, programmieren, Technologie, C (Programmiersprache)

Problem mit C# Debugging in Visual Studio 2019?

Ich habe mit dem Programmieren angefangen und starte erste Programme zu schreiben. Allerdings kommt mir immer, wenn ich das Debugging starten will, diese Meldung

"Visual Studio kann das Debuggen nicht starten, weil das Debugziel "C:\Users\49151\source\repos\AI THIS TIME AI THIS TIME\bin\Debug\AI THIS TIME.exe" nicht vorhanden ist. Erstellen Sie das Projekt, und wiederholen Sie den Vorgang, oder legen Sie die OutputPath- und die AssemblyName-Eigenschaft auf den richtigen Speicherort für die Zielassembly fest."

zu Gesicht. Das obere mit der .exe-Datei habe ich versucht, allerdings erfolglos.

PS.: Ich will nach diesen ((56) HOW TO MAKE VOICE ASSISTANT IN C# (PART 1) - YouTube)-Tutorial einen kleinen Personal Assistent schreiben. Hier ist mein Code:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Speech;
using System.Speech.Recognition;
using System.Speech.Synthesis;
using System.IO;

namespace AI_THIS_TIME
{
  public partial class Form1 : Form
  {
    SpeechRecognitionEngine recEngine = new SpeechRecognitionEngine();

    SpeechSynthesizer speech = new SpeechSynthesizer();

    public Form1()
    {
      InitializeComponent();

      Choices choices = Choices();
      string[] text = File.ReadAllLines(Environment.CurrentDirectory + "//gramer.txt");
      choices.Add(text);
      Grammar grammar = new Grammar(new GrammarBuilder(choices));
      recEngine.LoadGrammar(grammar);
      recEngine.SetInputToDefaultAudioDevice();
      recEngine.RecognizeAsync(RecognizeMode.Multiple);
      recEngine.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(recEngne_SpeechRecognized);
      speech.SelectVoiceByHints(VoiceGender.Female);
    }

    private Choices Choices()
    {
      throw new NotImplementedException();
    }

    private void recEngne_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
      string result = e.Result.Text;

      if (result == "Hello")
      {
        result = "Hello, I am me how can i help you";
      }

      speech.SpeakAsync(result);
      label2.Text = result;

    private void Form1_Load(object sender, EventArgs e)
    {
    }
  }
}
}
Computer, Schule, programmieren, Visual Studio

./startserver.sh: line 58: unexpected EOF while looking for matching ./startserver.sh: line 61: syntax error: unexpected end of file?

Ich habe das Problem ich finde nicht den Fehler könnte mir jemand helfen bin erst anfänger.

Will einen Minecraft Serverstarter machen.

#!/bin/bash


    if [ -f craftbukkit-1.16.5.jar ]; then
            echo "Skipping download. Using existing craftbukkit-1.16.5.jar"
            java -Xmx5G -Xms5G -jar craftbukkit-1.16.5.jar
               if [[ $DO_RAMDISK -eq 1 ]]; then
               sudo umount $SAVE_DIR
               rm -rf $SAVE_DIR
               mv "${SAVE_DIR}_backup" $SAVE_DIR
               fi
    else
            export URL="https://cdn.getbukkit.org/craftbukkit/craftbukkit-1.16.5.jar"
    fi
        echo $URL
        which wget >> /dev/null
    if [ $? -eq 0 ]; then
        echo "DEBUG: (wget) Downloading ${URL}"
        wget -O craftbukkit-1.16.5.jar "${URL}"
   else
        which curl >> /dev/null 
        if [ $? -eq 0 ]; then
        echo "DEBUG: (curl) Downloading ${URL}"
        curl -o craftbukkit-1.16.5.jar "${URL}"
        else
        echo "Neither wget or curl were found on your system. Please install one and try again"
        fi
    fi
    
    if egrep -q eula=true eula.txt; then
            echo Starting ...
            java -Xmx5G -Xms5G -jar craftbukkit-1.16.5.jar nogui
            exit
    else
        Height=15
        WIDTH=40
        CHOICE_HEIGHT=4
        BACKTITLE="Bukkit"
        TITLE="Choice"
        MENU="Do you accet the eula at (https://account.mojang.com/documents/minecraft_eula) ? "
        OPTIONS=(1 "Yes
                 2 "No")


        CHOICE=$(dialog --clear \
                        --backtitle "$BACKTITLE" \
                        --title "$TITLE" \                              --menu "$MENU" \
                        $HEIGHT $WIDTH $CHOICE_HEIGHT \
                        "${OPTIONS[@]}" \
                        2>&1 >/dev/tty)


            clear
            case $CHOICE in
                    1)
                        echo "You accepted the eula..."
                        sed s/false/true/g eula.txt
                        java -Xmx5G -Xms5G -jar craftbukkit-1.16.5.jar nogui
                        ;;
                    2)
                        echo "You not Accepted the eula"
                        ;;
    fi
programmieren, Ubuntu, Minecraft, Bash, Minecraft Server

Meistgelesene Beiträge zum Thema Programmieren