Hey Guys, I'm working on what for me has been the best chapter so far in this book and it is kicking my butt but, I'm learning a ton. This code finds letters in a string and capitalizes them. It skips what it has to. The updated string is copied into a char array called 'new'.
Can someone please help me understand why I can't print out the first letter or the entire string at the end of this code?
BTW: I have to use the pointer arithmetic.
Code:
#include <stdio.h>
void capitalize(char str[], int n);
int n=20;
int main(){
char ch[]="ljS4e8sjHd67ds";
int size = sizeof(ch)/sizeof(ch[0]);
capitalize(ch, size);
return (0);
}
void capitalize(char str[], int n){
printf("%s\n",str); // prints entire string
char new[n];
char *p;
p=str;
printf("p=%s\n",p); // prints entire string
for(p=str; p<str+n; p++){
if(*p>64 && *p<91){
*new=*p;
}else if(*p>96 && *p<123){
*new=toupper(*p);
}else{
*new=*p;
}
printf("%c\n", *new); // *q and *new both work
}
printf("%c", new[0]); // not working: I expected L
printf("%s", new); // not working: I expected LJS4E8SJHD67DS
}
Thank you.