Starting tinkering with text
This commit is contained in:
parent
5f40a4bfe1
commit
3d602be8f5
10
vagen_till_c/ch2/text1.c
Normal file
10
vagen_till_c/ch2/text1.c
Normal file
@ -0,0 +1,10 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
char name[20];
|
||||
printf("Enter your name: ");
|
||||
// scanf("%s", name); // Unsafe since name is limited to 20 characters
|
||||
scanf("%19s", name); // Much safer
|
||||
printf("Hello %s\n", name);
|
||||
}
|
23
vagen_till_c/ch2/text2.c
Normal file
23
vagen_till_c/ch2/text2.c
Normal file
@ -0,0 +1,23 @@
|
||||
#include <stdio.h>
|
||||
|
||||
/* Instead of scanf we use getchar to be able to read the entire name, including
|
||||
* spaces in between first- and lastname.
|
||||
*/
|
||||
|
||||
int main()
|
||||
{
|
||||
char name[20], c;
|
||||
int i;
|
||||
|
||||
printf("Enter your name: ");
|
||||
i = 0; // Start with i = 0 for name
|
||||
while ((c = getchar()) != '\n') // Get characters for as long as it's not a
|
||||
{ // newline character.
|
||||
name[i] = c; // For each loop, put 'c' into name[i] where
|
||||
i++; // 'i' is it's current position, increase i
|
||||
} // for each itteration.
|
||||
name[i] = '\0'; // Then put a '\0' character at the end of
|
||||
printf("Hello %s\n", name); // name to declare end of text.
|
||||
|
||||
return 0;
|
||||
}
|
27
vagen_till_c/ch2/text2_safer.c
Normal file
27
vagen_till_c/ch2/text2_safer.c
Normal file
@ -0,0 +1,27 @@
|
||||
#include <stdio.h>
|
||||
|
||||
/* Instead of scanf we use getchar to be able to read the entire name, including
|
||||
* spaces in between first- and lastname.
|
||||
*/
|
||||
|
||||
int main()
|
||||
{
|
||||
char name[20], c;
|
||||
int i;
|
||||
|
||||
printf("Enter your name: ");
|
||||
i = 0; // Start with i = 0 for name
|
||||
while ((c = getchar()) != '\n') // Get characters for as long as it's not a
|
||||
{ // newline character.
|
||||
name[i] = c; // For each loop, put 'c' into name[i] where
|
||||
i++; // 'i' is it's current position, increase i
|
||||
if ( i >= 19 ) // for each itteration.
|
||||
{
|
||||
break; // If we exceed 19 characters, break out of
|
||||
} // loop to avoid overflow.
|
||||
}
|
||||
name[i] = '\0'; // Then put a '\0' character at the end of
|
||||
printf("Hello %s\n", name); // name to declare end of text.
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user