Jump to content
Sign in to follow this  
X0r

feil med "krypteringsprogram"

Recommended Posts

har skrevet dette:

#include <iostream.h>
#include <stdlib.h>

int main()
{
using namespace std;
char bokstav[3]="ab";
int desimal[3];
int a=0;
while (a<=3){
desimal[a]=int(bokstav[a]);
desimal[a]++;
bokstav[a]=char(desimal[a]);
a++;
}


cout << "\n" << bokstav <<"\n";
system("PAUSE");
     return 0;

}

 

i c++.

 

Jeg trodde at det skulle printe "bc", men istedet printer det bc☺♥øº├w

Noe åpenbart galt med koden min? :ermm:

Er det noen som kan forklare hvordan man "forskyver" alle bokstavene i en string? :)

Share this post


Link to post
#include <iostream> 
/*fjernet ' .h '.. gammeldags*/

/*fjernet stdlib.h, siden du ikke bruker dette*/

using namespace std; 
/*flyttet denne ut av main().. ha det som en vane i starten å ha denne øverst, rett etter #include .. */

int main()
{
char bokstav[3]="ab";
int a=0;
while (a<=1){   
/* her skrev du over for mye, så du ødela 0-termineringa. Stringen sluttet ikke før den fant en 0 */
bokstav[a]++; 
/* det holder å gjøre slik, siden man da øker ascii-verdien med én. */
a++;
}
cout << bokstav << "\n"; 
/* fjernet en "\n" som ikke trengtes */

system("PAUSE");       
/* bør egentlig ikke bruke system("pause"); , men blås i det nå.. :p */

    return 0;

}
}

Edited by Zethyr

Share this post


Link to post

kan jeg stille et dumt spm: Hvorfor i all verden er char bokstav[3] en array med tre plasser når du skal trykke bare "a" og "b" inn i de?? (for å lage plass for \0?)

 

Personlig ville jeg heller brukt string eller char*, men...

 

I stedet for system("pause"), kan man jo include conio og bruke getch(), eller bare bruke standard cin.get();

Edited by Manfred

Share this post


Link to post

(length '(0 1 2 3)) => 4

 

#include <iostream>

int main()
{
 using namespace std;
 char bokstav[] = "ab";

 {
   unsigned int len = strlen(bokstav);
   for(unsigned int i = 0; i < len; i++) 
     bokstav[i] = static_cast<char>(bokstav[i] + 1);
 }
   
 cout << bokstav << endl;
 return 0;
}

 

må da være mer logisk med for her

 

edit:

kompilering og kjøring:

lars@ibmr52:~/programming/c++$ g++ -g -Wall c.cpp -o c && ./c

bc

Edited by dayslepr

Share this post


Link to post

eller denne er jo cute

 

#include <iostream>
#include <string>

int main()
{
 using namespace std;
 char bokstav[] = "ab";

 for(size_t i = 0, len = strlen(bokstav);
     (bokstav[i] = static_cast<char>(bokstav[++i] + 1), i)
< len;)
   
 cout << bokstav << endl;
 return 0;
}

 

er ikke C et rent og pent språk? O_o

 

edit:

her gjør man altså alt for å ikke klusse til scopet med unødvendige navn (jeg er bortskjemt)

Edited by dayslepr

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...