Arrays 在c中的数组中添加带有循环的元素的问题
我的目标是将每个单词从字符串中分离出来,并将分离出来的单词存储在数组中。 一切似乎都很顺利,但最后一张桌子上只摆满了最后一句话,我不明白为什么 请在下面找到我的代码:Arrays 在c中的数组中添加带有循环的元素的问题,arrays,c,pointers,Arrays,C,Pointers,我的目标是将每个单词从字符串中分离出来,并将分离出来的单词存储在数组中。 一切似乎都很顺利,但最后一张桌子上只摆满了最后一句话,我不明白为什么 请在下面找到我的代码: enum {TAILLE_BUFFER = 100}; char la_commande[TAILLE_BUFFER]; char* tableauArguments[TAILLE_BUFFER]; char* espace = " "; printf("Rentrez la commande
enum {TAILLE_BUFFER = 100};
char la_commande[TAILLE_BUFFER];
char* tableauArguments[TAILLE_BUFFER];
char* espace = " ";
printf("Rentrez la commande à executer avec ses arguments\n");
scanf("%[^\n]s", la_commande);
printf("%s\n", la_commande);
int cpt = 0;
int dernier_espace = 0;
int lenTab = 0;
for(int i = 0; i < TAILLE_BUFFER; i++)
{
if( (int)la_commande[i] == 0 ){
break;
}
lenTab++;
}
for(int cpt1 = 0; cpt1 < lenTab + 2; cpt1++)
{
int taille = cpt1 - dernier_espace;
char le_mot[taille];
if(la_commande[cpt1] == 32 )
{
for(int i = 0; i < taille; i++)
{
le_mot[i] = la_commande[i + dernier_espace];
}
printf("test1 : %s %d\n", le_mot, cpt);
tableauArguments[cpt] = le_mot;
printf("test2 %s\n", tableauArguments[cpt]);
dernier_espace = cpt1;
cpt++;
}
}
for(int cp1 = 0; cp1 < 5; cp1++)
{
printf("\nLecture du tableau : %s numero : %d", tableauArguments[cp1], cp1);
}
enum{TAILLE_BUFFER=100};
char la_commande[TAILLE_BUFFER];
char*tableauArguments[TAILLE_BUFFER];
char*espace=“”;
printf(“Rentrez la commandeáexecuter avec ses arguments\n”);
scanf(“%[^\n]s”,la_commande);
printf(“%s\n”,la_command);
int-cpt=0;
int-dernier_-espace=0;
int lenTab=0;
对于(int i=0;i
你不能这样做:表格参数[cpt]=leu-mot代码>因为您没有为表格参数[TAILLE\u BUFFER]
双数组分配内存位置。即使进行分配,也必须使用“strcpy()”功能将字符串数组的内容复制到另一个字符串数组。
工作代码可能如下所示:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
char la_commande[100];
char tableauArguments[100][100];
char* espace = " ";
printf("Rentrez la commande à executer avec ses arguments\n");
scanf("%[^\n]s",la_commande);
printf("%s\n",la_commande);
int cpt = 0;
int dernier_espace = 0;
int lenTab= 0;
for(int i = 0; i < 100; i++)
{
if((int)la_commande[i] == 0){
break;
}
lenTab++;
}
for(int cpt1 = 0; cpt1 < lenTab+2; cpt1++) {
int taille = cpt1 - dernier_espace;
char le_mot[taille];
if(la_commande[cpt1] == 32 )
{
for(int i = 0; i < taille;i++){
le_mot[i] = la_commande[i+dernier_espace];
}
printf("test1 : %s %d\n",le_mot,cpt);
strcpy(tableauArguments[cpt], le_mot);
printf("test2 %s\n",tableauArguments[cpt]);
dernier_espace = cpt1;
cpt++;
}
}
for(int cp1 = 0; cp1 < 5;cp1++){
printf("\nLecture du tableau : %s numero : %d", tableauArguments[cp1], cp1);
}
}
#包括
#包括
#包括
int main(){
char la_commande[100];
char tableauArguments[100][100];
char*espace=“”;
printf(“Rentrez la commandeáexecuter avec ses arguments\n”);
scanf(“%[^\n]s”,la_commande);
printf(“%s\n”,la_command);
int-cpt=0;
int-dernier_-espace=0;
int lenTab=0;
对于(int i=0;i<100;i++)
{
如果((int)la_命令[i]==0){
打破
}
lenTab++;
}
for(int-cpt1=0;cpt1
此代码不可编译。修正a并更精确地描述预期和实际输出。显示一些示例输入和输出代码>内存在循环开始时保留,然后在同一循环结束时释放。我要求用户输入一个句子,我希望程序在表中分隔该句子的单词。输入:“hello world!”输出预期:tab[0]“hello”tab[1]“world”tab[2]“!“输出实际:tab[0]!“tab[1]”!“tab[2]!”@Damien,是的,因为我试图将le_mot的值放入数组TableArguments中,除此之外我不知道如何做