Je traduis le langage C en Golang, mais c'est assez difficile.
Traitement itératif (essentiellement pour seulement?) Ou chaînes de caractères (le type char n'est pas dans Golang).
Donc, je crée un "programme qui compte le nombre de voyelles de la chaîne de caractères d'entrée", mais les types "chaîne", "octet" et "rune" sont géniaux.
Si vous connaissez une percée, j'apprécierais que vous me le disiez.
2-3.c
#include <stdio.h>
int main(void)
{
char moziretu[100] = {};
char boin[5] = {'a', 'i', 'u', 'e', 'o'};
int count[5] = {}; /*Chaque élément correspond au caractère du tableau boin.(count[0]À'a'Remplacez le nombre de)*/
int i;
int j = 0;
printf("Chaîne>>>");
/*Entrez une chaîne*/
scanf("%s", moziretu);
/*Répétez jusqu'à ce que enter soit chargé*/
while(moziretu[j] != '\0'){
for(i = 0; i < 5; i++){
/*Compter si une voyelle est trouvée dans la chaîne*/
if(moziretu[j] == boin[i]) count[i]++;
}
j++;
}
/*Afficher le nombre de voyelles*/
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(){
/*Définition de la chaîne d'entrée*/
var input string
/*Tableau pour stocker les voyelles*/
boin := []rune{'a', 'i', 'u', 'e', 'o'}
/*Nombre de comptes pour chaque voyelle*/
count := []int{0, 0, 0, 0, 0}
/*Pour les boucles*/
i := 0
j := 0
/*Saisie de la chaîne de caractères*/
fmt.Printf("String>>>")
fmt.Scanln("%s", &input)
str := []rune(input)
/*Répétez jusqu'à ce que enter soit chargé*/
for {
for i = 0; i < 5; i++ {
/*Compter si une voyelle est trouvée dans la chaîne*/
if str[j] == boin[i] {
count[i] += 1
}
}
if str[j] == '\x00' {
break
}
j += 1
}
/*Afficher le nombre de voyelles*/
for i = 0; i < 5; i++ {
fmt.Printf("%s : %d\n", boin[i], count[i])
}
}
À propos, l'exécution du code Golang ci-dessus provoque une panique.
$ 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
fixé.
package main
import "fmt"
func main(){
/*Définition de la chaîne d'entrée*/
var input string
/*Tableau pour stocker les voyelles*/
boin := []rune{'a', 'i', 'u', 'e', 'o'}
/*Nombre de comptes pour chaque voyelle*/
count := []int{0, 0, 0, 0, 0}
/*Pour les boucles*/
i := 0
j := 0
/*Saisie de la chaîne de caractères*/
fmt.Printf("String>>>")
fmt.Scanf("%s", &input)
str := []rune(input)
/*Répétez jusqu'à ce que enter soit chargé*/
for j < len(str){
for i = 0; i < 5; i++ {
/*Compter si une voyelle est trouvée dans la chaîne*/
if str[j] == boin[i] {
count[i] += 1
}
}
j += 1
}
/*Afficher le nombre de voyelles*/
for i = 0; i < 5; i++ {
fmt.Printf("%c : %d\n", boin[i], count[i])
}
}
Recommended Posts