Golang ist schwer zu übersetzen. .. .. (Teil 1)

Hintergrund

Ich übersetze C-Sprache nach Golang, aber es ist ziemlich schwierig.

Iterative Verarbeitung (im Grunde nur für?) Oder Zeichenketten (char-Typ ist nicht in Golang).

Also mache ich ein "Programm, das die Anzahl der Vokale aus der Eingabezeichenfolge zählt", aber die Typen "Zeichenfolge", "Byte" und "Rune" sind brillant.

Wenn Sie einen Durchbruch kennen, würde ich mich freuen, wenn Sie es mir sagen könnten.

C-Code

2-3.c


#include <stdio.h>

int main(void)
{
	char moziretu[100] = {};
	char boin[5] = {'a', 'i', 'u', 'e', 'o'};
	int count[5] = {};  /*Jedes Element entspricht dem Charakter des Array-Boins.(count[0]Zu'a'Ersetzen Sie die Zählnummer von)*/

	int i;
	int j = 0;
	

	
	printf("String>>>");
	/*Geben Sie eine Zeichenfolge ein*/
	scanf("%s", moziretu);

	/*Wiederholen, bis die Eingabe geladen ist*/
	while(moziretu[j] != '\0'){
		for(i = 0; i < 5; i++){
			/*Zählen Sie, ob in der Zeichenfolge ein Vokal gefunden wird*/
			if(moziretu[j] == boin[i]) count[i]++;
		}
		j++;
	}

		/*Zeigen Sie die Anzahl der Vokale an*/
	for(i = 0; i < 5; i++){
		printf("%c : %d\t", boin[i], count[i]);
	}

	printf("\n");
	return 0;
}

Golang-Code

2-3.go


package main

import "fmt"

func main(){
	/*Definition der Eingabezeichenfolge*/
	var input string

	/*Array zum Speichern von Vokalen*/
	boin := []rune{'a', 'i', 'u', 'e', 'o'}

	/*Anzahl der Zählungen für jeden Vokal*/
	count := []int{0, 0, 0, 0, 0}

	/*Für Schleifen*/
	i := 0
	j := 0

	/*Eingabe der Zeichenkette*/
	fmt.Printf("String>>>")
	fmt.Scanln("%s", &input)
	str := []rune(input)

	/*Wiederholen, bis die Eingabe geladen ist*/
	for {
		for i = 0; i < 5; i++ {
			/*Zählen Sie, ob in der Zeichenfolge ein Vokal gefunden wird*/
			if str[j] == boin[i] {
				count[i] += 1
			}
		}
		if str[j] == '\x00' {
			break
		}
		j += 1
	}

	/*Zeigen Sie die Anzahl der Vokale an*/
	for i = 0; i < 5; i++ {
		fmt.Printf("%s : %d\n", boin[i], count[i])
	}
}

Übrigens verursacht das Ausführen des obigen Golang-Codes eine Panik.

$ go run 2-3.go
String>>>panic: runtime error: index out of range

goroutine 1 [running]:
panic(0x4e8200, 0xc82000a0e0)
        /usr/lib/go-1.6/src/runtime/panic.go:481 +0x3e6
main.main()
        /home/yuki-f/Golang/pro2/2-3.go:28 +0x55f
exit status 2

Nachtrag

Fest.

package main

import "fmt"

func main(){
	/*Definition der Eingabezeichenfolge*/
	var input string

	/*Array zum Speichern von Vokalen*/
	boin := []rune{'a', 'i', 'u', 'e', 'o'}

	/*Anzahl der Zählungen für jeden Vokal*/
	count := []int{0, 0, 0, 0, 0}

	/*Für Schleifen*/
	i := 0
	j := 0

	/*Eingabe der Zeichenkette*/
	fmt.Printf("String>>>")
	fmt.Scanf("%s", &input)
	str := []rune(input)

	/*Wiederholen, bis die Eingabe geladen ist*/
	for j < len(str){
		for i = 0; i < 5; i++ {
			/*Zählen Sie, ob in der Zeichenfolge ein Vokal gefunden wird*/
			if str[j] == boin[i] {
				count[i] += 1
			}
		}
		j += 1
	}

	/*Zeigen Sie die Anzahl der Vokale an*/
	for i = 0; i < 5; i++ {
		fmt.Printf("%c : %d\n", boin[i], count[i])
	}
}

Recommended Posts

Golang ist schwer zu übersetzen. .. .. (Teil 1)
Unverständliche binäre Baumdurchquerung
Einführung in PyQt4 Teil 1
Betreff: Python Lambda ist nutzlos ^ H ^ H ^ H ^ H ^ H Schwer zu bedienen
Teil 1 Versuch, Mathematik zu codieren (∈)
Cython kommt zu AtCoder !!
Einführung in Ansible Teil In'Inventory '
Einführung in Ansible Teil ④'Variable '
Ruby unter Windows Löschen Sie die schwer verständliche Dateiverwaltung
Verwendung von Python mit Jw_cad (Teil 1 Was ist externe Transformation)