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.
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;
}
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
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