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