Je suis novice dans l'écriture de code, alors expliquez brièvement vos réponses afin que je puisse (essayer de) suivre, merci! J'essaie d'entrer une chaîne, d'assigner la chaîne à un tableau de caractères, et d'extraire sélectivement une partie de la chaîne de caractères à retourner (ie entrer "character" et retourner "act"), et je n'arrive pas à comprendre pourquoi Je continue d'obtenir l'erreur "valeur indicée n'est ni tableau ni pointeur ni vecteur". Voici mon code:C, tableau char, erreur: la valeur indicée n'est ni tableau ni pointeur ni vecteur?
#include <stdio.h>
char source[81], result[81];
int start, count;
char substring();
int main(void)
{
substring ("character", 4, 3, result);
printf ("%s", result); //print result
return 0;
}
char substring (source, start, count, result)
{
int i = 0;
while (i <= (count-1))
{
result[i] = source[((start-1)+i)]; //op chosen chars to result array
++i;
if (i == count)
{
result[i] = '\n'; //when i = count, insert null at end of source array
}
}
return result;
}
Quand j'attemp compiler, je reçois l'erreur: "
Compilation error time: 0 memory: 0 signal:0
prog.c: In function ‘substring’:
prog.c:20:13: error: subscripted value is neither array nor pointer nor vector
result[i] = source[((start-1)+i)]; //op chosen chars to result array
^
prog.c:20:25: error: subscripted value is neither array nor pointer nor vector
result[i] = source[((start-1)+i)]; //op chosen chars to result array
^
prog.c:24:14: error: subscripted value is neither array nor pointer nor vector
result[i] = '\n'; //when i = count, insert null at end of source array
^"
et oui, je suis conscient que pour extraire 'act' je dois changer l'argument '4' en '5' ou corriger la condition de sélection du sous-ensemble du tableau – Blade122888
Votre fonction prend quatre paramètres 'int'. vous voulez utiliser les variables globales, utilisez-les simplement au lieu d'avoir des paramètres pour eux. Une meilleure idée serait de se débarrasser des globals et de changer les paramètres pour avoir le bon type afin que vous puissiez transmettre les données. – chris
La fonction 'char substring (source, start, count, result)' devrait être quelque chose comme 'char * substring (char * source, int start, int nombre, char * résultat) ' – francis