liljaMedlem sedan juli 20041 183 inlägg Jag ska skriva ett program som tar emot 10 namn som man skriver in (alltså 10 ord) och sedan sparar dem i en array.
Men det finns väl inga klassiska arrayer i C och dessutom så ska text sparas i densamma. char ord[40] kan jämföras med en sträng som sparar 41 tecken.
Men hur ska jag lösa denna uppgift? Någon som kan ge mig ett tipps?
Dessutom så skall jag sedan leta efter ett ord bland dessa 10, hur jag gör det vet jag inte heller :(
Man skulle kanske kunna underlätta med en struktur men detta vill jag inte göra.
Vet att detta är ett nybörjarproblem men jag har funderat ca en hel dag på det nu och kommer inte fram till något vettigt :(
CompusaMedlem sedan jan. 20023 327 inlägg Jag är också nybörjare, men borde inte detta vara ett steg i rätt riktning?
char *namnarray[10]; /*array för 10 string, dvs 10 st char-pekare?*/
namnarray[0] = läs in ett antal chars med scanf eller vad det heter...
namnarray[1] = samma här...
...
namnarray[9] = och även sista...
och sen när du har de string du vill ha (en string är en char-array) så kan du väl använda strcmp() eller vad det nu heter i <string.h>?
int resultat = strcmp(namnarray[0], "string att jämföra med");
Sen kollar man om resultatet Är -1, 0 eller 1. antar att -1=> första är "mindre" än andra, 0 => likadana strängar, 1 => försa är större... eller tvärt om.
=)
clxMedlem sedan sep. 200610 inlägg Hjälper detta...
#include <iostream>
using namespace std;
int main()
{
int number[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int *pNumbers = Number;
cout << "Values";
cout << "\n number[0] : " << number[0];
cout << "\n*pNumber : " << *pNumbers;
return 0;
}
Vilket borde bli...:
Values
number[0] : 31
*pNumber : 31[/HTML]
//DOS PROGRAM
PeWMedlem sedan juni 200010 432 inlägg
lilja skrev:
Jag ska skriva ett program som tar emot 10 namn som man skriver in (alltså 10 ord) och sedan sparar dem i en array.
Men det finns väl inga klassiska arrayer i C och dessutom så ska text sparas i densamma. char ord[40] kan jämföras med en sträng som sparar 41 tecken.
Men hur ska jag lösa denna uppgift? Någon som kan ge mig ett tipps?
Dessutom så skall jag sedan leta efter ett ord bland dessa 10, hur jag gör det vet jag inte heller :(
Man skulle kanske kunna underlätta med en struktur men detta vill jag inte göra.
Vet att detta är ett nybörjarproblem men jag har funderat ca en hel dag på det nu och kommer inte fram till något vettigt :(
Jag vill inte hjälpa dig genom att skriva koden då jag antar att det är någon form av skoluppgift och detta är så basic att du bör kunna detta. Men du har ju redan svarat dig själv i din fråga. Dvs, du kan använda dig av char array.
Det du sen bör göra är att allokera minne för din array.. som bör bestå av 10 st char arrays.. dvs ett stycke array[][]... eller som redan föreslagits: strings via string.h.
När du väl fått ihop detta genom att lägga in allt i minnet är det sökningen du vill åt. Det är ju lika enkelt.. loopa igenom det minne du allokerat och jämför. Endera genom strcmp(..) eller skriv den funktionen själv.
Lycka till :)
liljaMedlem sedan juli 20041 183 inlägg Då kan jag informera alla om att detta är en icke obligatorisk uppgift. Den riktiga inlämningsuppgiften som var mycket svårare lyckades jag nästan lösa dock med en hel del fulkod och tre logiska buggar.
Så ni kan svara nu hur ni tycker att man ska göra om ni vill :) Det kommer inte ge mig några poäng. Jag vill bara veta om jag gör på rätt sätt inför ett framtida prov.
int compare(char *pointer) {
char *search = "IPOD";
int ans;
ans = strcmp (pointer,search);
if(ans == 0) {
return 1;
}
else {
return 0;
}
}
void problem_3(void) {
char ITEMS[9][30];
int i=0, j=0, ans;
printf("Enter 10 names separated by enter:\n\n");
for(i; i<10; i++) {
printf("Name %d: ", i+1);
scanf("%s", &ITEMS[i][0]);
}
printf("\n");
for(j; j<10; j++) {
ans = compare(&ITEMS[j][0]);
if(ans==1)
printf("%d contains the word IPOD!\n", j+1);
}
system("PAUSE");
}