Προς το περιεχόμενο

ερωτηση για string στη c


stefanos59

Προτεινόμενες αναρτήσεις

  • Απαντ. 37
  • Δημ.
  • Τελ. απάντηση
Δημοσ.

Ναι μα το κανω ετσι και δεν μ εμφανιζει τιποτα...

:blink:

κανε copy-paste αυτο που σου εδωσε ο vrixen, μετα αλλαξε τη γραμμη

>for(int iLetterCount=0; iLetterCount < SIZE; ++iLetterCount)

σε

>int iLetterCount = 0;
for(iLetterCount=0; iLetterCount < SIZE; ++iLetterCount)

:unsure:

Δημοσ.

κανε copy-paste αυτο που σου εδωσε ο vrixen, μετα αλλαξε τη γραμμη

>for(int iLetterCount=0; iLetterCount < SIZE; ++iLetterCount)

σε

>int iLetterCount = 0;
for(iLetterCount=0; iLetterCount < SIZE; ++iLetterCount)

:unsure:

το προγραμμα τρεχει μια χαρα δινοντας εναν αριθμο μεσα στο προγραμμ,απλα οταν παω να το κανω να μου ζηταει εναν αριθμο και εγω να του δινω καποιον δεν μ τρεχει.

 

για την ιστορία πάλι,το ζητούμενο με αναδρομή

 

>


#include <stdio.h>
#include <string.h>
#define SIZE 4
static int COUNT = 0;

char Letters[][size] = {
{'0','0','0'},
{'0','0','0'},    
{'A', 'B', 'C'},
{'D', 'E', 'F'},
{'G', 'H', 'I'},
{'J', 'K', 'L'},
{'M', 'N', 'O'},
{'P', 'R', 'S'},
{'T', 'U', 'V'},
{'W', 'X', 'Y'}
};

void ConvertPhoneNumberToString(char phone[], int nArraySize, int nStart){
if(nStart < nArraySize - 1){
   char chDigit = phone[nStart];
       int nDigit = chDigit - '0';
       for(int iLetterCount=0; iLetterCount < SIZE; ++iLetterCount){
           char chLetter = Letters[nDigit][iLetterCount];
           if(chLetter != 0){
             phone[nStart] = chLetter;
             ConvertPhoneNumberToString(phone, nArraySize, nStart + 1);
            [color="#FF0000"]phone[nStart] = chDigit;[/color]
           }
       }
}else{
   COUNT++;
   if (COUNT%21==0){
       printf("pata ena pliktro gia sinexeia...\n");
       getchar();
   }
   printf("[%d]=> %s\n", COUNT, phone);

}
}

int main(){
   char phone[] = "2845";
   ConvertPhoneNumberToString(phone, sizeof(phone), 0);
   getchar();
   return 0;
}

η εντολη με το κοκκινο ειναι απαραιτητη(phone[nStart] = chDigit;)?

Δημοσ.

απλα οταν παω να το κανω να μου ζηταει εναν αριθμο και εγω να του δινω καποιον δεν μ τρεχει.

Πως παιρνεις τον αριθμο;

 

Τωρα ειδα το #26

Συμφωνα με

>   char phone[] = "2845";
   ConvertPhoneNumberToString(phone, sizeof(phone), 0);

Η συναρτηση παιρνει ενα μη nul terminal string, το μεγεθος του και τελος απο που να αρχισει.

αρα το sizeof δε σου κανει.

κανε κατι τετοιο

>char buf[256];
scanf("%s",buf);
ConvertPhoneNumberToString(buf,strlen(buf),0);

Τελος ριξε μια ματια στα c strings.

Δημοσ.

Πως παιρνεις τον αριθμο;

 

Τωρα ειδα το #26

Συμφωνα με

>   char phone[] = "2845";
   ConvertPhoneNumberToString(phone, sizeof(phone), 0);

Η συναρτηση παιρνει ενα μη nul terminal string, το μεγεθος του και τελος απο που να αρχισει.

αρα το sizeof δε σου κανει.

κανε κατι τετοιο

>char buf[256];
scanf("%s",buf);
ConvertPhoneNumberToString(buf,strlen(buf),0);

Τελος ριξε μια ματια στα c strings.

θα μπορουσε να γινει καπως ετσι??:

>int main(){
   char phone1[256];
   printf("\nDwse ton arithmou tilefwnou pou theleis na metatrepseis se pithanes lekseis\n");
   scanf("%s",phone1);
   char phone[]=phone1;
   ConvertPhoneNumberToString(phone,sizeof(phone),0);
   getchar();
   return 0;
   
}

Δημοσ.

Πως παιρνεις τον αριθμο;

 

Τωρα ειδα το #26

Συμφωνα με

>   char phone[] = "2845";
   ConvertPhoneNumberToString(phone, sizeof(phone), 0);

Η συναρτηση παιρνει ενα μη nul terminal string, το μεγεθος του και τελος απο που να αρχισει.

αρα το sizeof δε σου κανει.

κανε κατι τετοιο

>char buf[256];
scanf("%s",buf);
ConvertPhoneNumberToString(buf,strlen(buf),0);

Τελος ριξε μια ματια στα c strings.

 

σωστό αλλά θέλει μία αλλαγή στην αναδρομική συνάρτηση για να δουλέψει

 

ΑΛΛΑΓΗ ΣΤΟΝ ΚΩΔΙΚΑ ΓΙΑ ΧΡΗΣΗ strlen αντι sizeof

=================================================

if(nStart < nArraySize - 1){ να γίνει ----> if(nStart < nArraySize){

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...