Hey guys I am working on implementing a simple cryptography program called Caesar. I got this program to work perfectly when I was writing a function to handle the cryptography and just declaring the string that I wanted to encrypt and the integer I wanted to move the letters by to encrypt it. maybe you can help me out and tell me what I am doing wrong here. I am just trying to get the user to enter the key into main and then be prompted for the string to encrypt.
I ended up with a segmentation fault.. I have absolutely no idea what I am looking at but when I ran GDP I get this
#0 0x001bd283 in ____strtol_l_internal (nptr=0x0, endptr=0x0, base=10, group=0,
loc=0x3123a0) at strtol_l.c:298..
Anyways here is my code..
Code:
#include <stdio.h>
#include <cs50.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
// turn string k into int k
int k = atoi(argv[1]);
k = k % 26;
int i = 0;
// prompt user for string
string word = GetString();
// below here all works fine when I had it as a stand alone function that I
// passed arguments to from main.. should encrypt by "k" letters
while (word[i] != '\0')
{
if (word[i] >= 'a' && word[i] <= 'z')
{
word[i] = (word[i] + k - 97) % 26 + 97;
i++;
}
else if (word[i] >= 'A' && word[i] <= 'Z')
{
word[i] = (word[i] + k - 65) % 26 + 65;
i++;
}
else
i++;
}
word[i] = '\0';
printf("%s\n", word);
}