()
, () () , . , , , .
, .
, .
, .
. . , .. . .
, .
.
. , . , .
, {} . , :
int a10[10] = { 1, 2, 3, 4 }; /* 6 */
, :
int a3[] = { 1, 2, 3 }; /* a3[3] */
, .27.
( () ), , : char, short, int, long. . . , , :
int N = 10;
int M = 20;
float A [N] [M]; // NxM 200
int B [N]; // 10
char C {'A','F',6,5} // 4
, , , , :
A[2,3]:=3.14;
A[i,j]:=i*i+j2;
A[i,2]:=A[i1,j+2];
B[j]:=3; B[j+i]:=i+j;
- (, , , character), - '\0'. , "". (.. , '\0') . , , 0 -1. , , .. , '\0' . .8 .
|
|
8.
() | ( ) | ||
Char | 1 (8) | -128 127 | |
Unsigned char | 1 (8) | 0 255 | |
Signed char | 1 (8) | -128 127 |
Char. : unsigned, signed.
. , - .
char [10]; 10 . , char. , , , , , , . printf("%s", ), , .. , . - , printf() , , , . (, ): , .
:
char array[7] = "";
char s[ ] = {'', '', '', '', '', '', '\0'};
( ).
- . char *b; b, . b . b ="IBM PC";, . -, , - "IBM PC", ('\0'). -, ( 'I') b. printf("%s", b) , , , .
, .. .
scanf() printf() gets() puts() ( stdio.h).
|
|
string , :
gets(string);
( <Enter>). :
puts(string);
, , string.h.
strcpy(), strcat(), strlen() strcmp().
srcpy() .
, \0. s1.
strcpy(s1, s2); // s2 s1
strncpy(s1, s2,n); // n s2 s1
, - s1 , - s2, . n , s2, s1 n.
- , , , :
9 strcpy(s1,&s2[k]); // s2 s1
9 strncpy(s1,&s[2],n); // s2 s1
char * strcpy_my (char *s1, char *s2) //
{
char *ptrs1 = s1;
while ((*s1++ = *s2++)!= 0);
return ptrs1;
}
, .
strlen(). . .
void main() /* */
{
char str[80];
printf(" : ");
gets(str);
printf("%d", strlen(s));
}
() strcat():
strcat(s1,s2); // s2 s1
strncat(s1,s2,n); // n s2 s1
, . .
char * strcat_my (char *s1, char *s2) /* */
{
char *p1, *p2;
p1 = s1; p2 = s2;
while (*p1!= \0) p1++; // 1- .
// while (*p1) p1++;
while ((*p1 = *p2)!= 0)// 2,
{
p1++; //
p2++; //
} // while ((*p1++ = *p2++)!= 0);/*.
*1 = \0;
return s1;
}
:
strstr(s1,s2); // s2 s1
strchr(s1,c); // s1
strrcgr(s1,c); // s1
strpbrk(s1,s2); // s2 s1
strspn(s1,s2); // ,
// s2 s1
strcmp() . . . "A" "F", "" "" ..
, , . . ( ) . , .. - . ASCII "" "" , "" "" .
|
|
, , . .
strupr(s) strlwr(s) . , , .
, , . , "" () , "" , , "".
strcmp(s1,s2); // s1 s2
strcmpi(s1,s2); // s1 s2
//
stricmp(s1,s2); // strcmpi
strncmp(s1,s2,k); // k s1 s2
strncmpi(s1,s2,k); // k s1 s2
//
//
strnicmp(s1,s2,k); // strncmpi
strcmp() , :
/* "", */
password()
{
char s[80];
printf(" : ");
gets(s);
if(strcmp(s, ""))
{
printf(" \n");
return 0;
}
return 1;
}
, , strcmp() "", , ! (NOT), :
main()
{
char s[80];
for('')
{
printf(": ");
gets(s);
if(!strmp("quit", s)) break;
}
}
, quit. :
main()
{
char s1[80], s2[80];
gets(s1); gets(s2);
printf(": %c %c\n", strlen(s1), strlen(s2));
if(!strcmp(s1, s2)) printf(" \n");
strcat(s1,s2);
printf("%s\n", s1);
}
hello hello, :
: 5 5
Hellohello
. & . .
, :
/* */
|
|
main()
{
char s[80];
char *p;
int i;
printf(" : ");
gets(s);
/* */
for(i=0; s[i] && s[i]!=` `; i++);
p = &s[i];
printf(p);
}
p , , , . p , . , , printf() . p , .
s str, sMyString, strName.
()
(, , , ..). , . , .
struct, , :
struct
{
_1 _1;
_n _n;
};
. , .
:
sruct date
{
int day;
int month;
int year;
};
, , , :
struct date {...} a, b, c;
( ). ; . , :
struct date days;
days date.
, .
, :
struct man
{
char name[20], fam[20];
struct date bd;
int age;
};
data : day, month, year, (int). man name, fam, bd voz. name[20] fam[20] - 20 . bd ( ) data. age (int). , :
struct man man_[100];
man _, 100 man.
, , , :
man_[j].age = 19;
man_[j].bd.day = 24;
man_[j].bd.month = 2
man_[j].bd.year = 1987;
, . , man _ man, year .. , , . man_[i]=man_[j]; man_[i] man_[j] , . , .
& . , day:
struct date {int d, m, ;} day;
day date, : d, m, .
struct date *db;
, db - date.
:
db = &day;
d, m, :
(*db).d; (*db).m; (*db).y;
, db - , *db - . , , , . >. :
db -> d; db -> m; db -> ;
13. , . , (Curs).
|
|
struct Student
{
char FIO[20];
int YearBirth;
bool sex;
char Group[20];
float Stipendia;
int Curs;
int SchoolNo;
char SchoolCity[7];
int KruzhokNo[5];
char DiplomTema[50];
char MestoPractiki[50];
} Stud1;
switch(Stud1.Curs)
{
case 1: Stud1.SchoolNo = 345;
Stud1.SchoolCity = "";
break;
case 2: Stud1.KruzhokNo[1]:=22;
break;
case 5: Stud1.DiplomTema=" ";
Stud1.MestoPractiki="";
break;
}
() , . . ( ) :
enum < > ( );
:
enum seasons (spring, summer, autumn, winter);
enum seasons , b, ;
seasons . (, b, c) : spring, summer, autumn winter. :
enum seasons (spring, summer, autumn, winter) a, b, ;
:
enum days {mon, tues, wed, thur, fri, sat, sun} my_week;
, days ( seasons ), . (mon) , , (tues=1, wed=2 ..).
(, , , , , ). :
enum days (man=5, tues=8, wed=10, thur, fri, sat, sun} my_week;
mon=5, tues=8,wed=10, thur=11, fri=12, sat=13, sun=14.
enum true=1 false=0, :
enum t_f (false, true) , b;
14. , , , . , .
int i;
char z; /* */
printf("\n :\n");
for(i=0;z!='.';i++)
{
scanf("%c",&z);
if(z=='0'||z=='1'||z=='2'||z=='3'||z=='4')continue;
if(z=='5'||z=='6'||z=='7'||z=='8'||z=='9')continue;
printf("%c",z);
}
, ( ) . . union, . :
union r
{
int ir;
float fr;
char cr;
} z;
ir 2 , fr - 4 , cr - 1 . z (.. 4 ). z ir, fr cr.
- , ( , , , ). , , , . , , , ( ). :
< > [< > ] * .
, , ( ). - void, , . , void, . , , , . .
const, near, far, huge. const , . , , . .
near, far, huge.
unsigned int * a; /*
unsigned int ( ) */
double * x; /*
*/
char * fuffer; /* fuffer
char */
double nomer;
void *addres;
addres = & nomer;
(double *)addres ++;
/* addres . (& - ). , , , , . , (double *) addres double, . */
const * dr;
/* dr , .. , , , . */
unsigned char * const w = &obj.
/* w char unsigned. , w . . */
. , int array[25], , array, () , .. , array. arrey , , .
, , :
int arrey[25];
int *ptr;
ptr = array;
ptr , ptr = arrey ptr = &arrey[0].
. , , array[16] = 3 array[i+2] = 7. , . , - . , . array[16] 16[array] . , , - , . ptr = array ptr ptr[16] 16[ptr].
*(array+16) = 3 *(array+i+2) = 7. *(array+16) *(16+array).
, .. . array[16] 16[array] *(array+16).
(.. ) array ptr.
*array = 2;
array[0] = 2;
*(array+0) = 2;
*ptr = 2;
ptr[0] = 2;
*(ptr+0) = 2;
2, *array=2 *ptr=2, .