Я включил «rawRecipesDevt.h», который представляет собой массив, содержащий названия рецептов (с префиксом 0), за которыми следуют ингредиенты (с префиксом 1). Итак, первый рецепт - «Брокколи, салат из капусты». Префиксы не должны распечатываться и могут быть удалены со строк, если это удобно. Список заканчивается пустой строкой в качестве терминатора. Это массив ниже:
char *rawRecipes[]={
"0Broccoli Coleslaw",
"1olive oil",
"1white vinegar",
"1broccoli",
"0Creamy Broccoli Salad",
"1broccoli",
"1white sugar",
"1red onion",
"1white wine vinegar",
"0Minnesota Broccoli Salad",
"1eggs",
"1broccoli",
"1red onion",
""
};
Я хочу скопировать содержимое char * rawRecipes [] в строковый массив, чтобы упростить печать. Должен ли этот массив быть чем-то вроде char stringsCopied [20] [30] (поэтому мне не нужно печатать 1 или 0) или stringsCopied [20]? Я пытался использовать strcpy, но при попытке печати ничего не происходит. Это то, что я до сих пор:
#include "rawRecipesDevt.h" //change to rawRecipes.h when submitting
#include <stdio.h>
#include <string.h>
int main(void) {
int input, i, j, k;
// char *stringsCopied[250];
// I am supposed to execute the commands 1-5
char stringsCopied[250][40];
printf("\n\n");
printf("Enter a command by letter \n");
printf("1. List all Recipes\n");
printf("2. Print a Recipe \n");
printf("3. List All Recipes with a given ingredient \n");
printf("4. List All Ingredients in alphabetical order \n");
printf("5. Exit the program \n");
printf("Give input: \n");
scanf("%d", &input);
// printf("%s",rawRecipes);
for (i = 0; i != ""; i++) {
for (j = 1; j != ""; j++) {
stringsCopied[i][j] = *rawRecipes[i];
printf("%s", stringsCopied[i][j]);
}
}
printf("%s", stringsCopied);
/*if(input==1){
for(i=0;rawRecipes[i]!='\0';i++){
if(ingredient(rawRecipes[i]==0)){
printf("%s\n",&rawRecipes[i]);
}
}
}*/
return 0;
}