New Page 1
Microsoft visual c++ 2008.
Урок 11. Строковые функции (strcpy,
atoi, atof)
Сегодня мы изучим некоторые строковые функции C++:
-
sprintf. Тоже самое, что
printf, но выводит не на экран, а в строку. Очень
полезная функция, если у вас имеется альтернативный способ печати, кроме
printf. Например, какая нибудь функция графической
печати. В этом случае мы просто выводим информацию в строку при помощи
sprintf и передаем эту строку нашей функции.
-
strcpy. Копирование строк. Делает тоже самое, что и
функция copystr, которую мы разработали на уроке 9.
-
strcmp. Функция сравнения двух строк. возвращает 0,
если они равны, положительное число если первая больше второй и отрицательное
если наоборот.
-
strcat. Соединение строк в одну.
-
atoi. Преобразует строку в целое число.
-
atof. Преобразует строку в число с плавающей точкой.
А теперь пример:
#include
"stdafx.h"
#include <conio.h>
#include <stdio.h>
//getchar(), putchar()
#include <stdlib.h>
//для atoi(), atof()
#include <string.h>
//strcpy
#define eof -1
#define maxline 1000
//функция ввода строки с клавиатуры
int getline(char
s[], int lim) {
int c,i;
for (i=0; i<lim-1
&& (c=getchar())!= eof && c!='\n';
i++) s[i]=c;
s[i]= '\0';
i++;
return i;
}
int _tmain(int
argc, _TCHAR* argv[])
{
int x;
char sl[maxline];
double y;
char c,cl,ot[5],vl[maxline];
do {
printf( "Enter int n for sprintf():
");
getline(ot,5);
x=atoi(ot);
printf( "Enter float m for sprintf():
");
getline(ot,5);
y=atof(ot);
printf( "Enter string s for sprintf():
");
getline(sl,maxline);
sprintf(vl, "%d %f %s",x,y,sl);
printf( "Format string %s\n",vl);
printf( "Continue - ENTER, next step
Ctrl+z: ");
} while ((cl=getchar())!=eof);
char s2[maxline],
v2[maxline];
do {
printf( "\n\nEnter string for strcpy():
");
getline(s2,maxline);
strcpy(v2,s2);
printf( "Copied string %s\n",v2);
printf( "Continue - ENTER, next step
Ctrl+z: ");
} while ((c=getchar())!=eof);
char s3[maxline];
char v3[maxline];
do {
printf( "Enter string1 for strcmp():
");
getline(s3,maxline);
printf( "Enter string2 for strcmp():
");
getline(v3,maxline);
int i=strcmp(s3,v3);
printf( "strcnp's result=%d\nstring
length=%d\n",i,strlen(s3));
if (i==0)
printf("String is equals");
if (i>0)
printf("String1 > string2");
if (i<0)
printf("String1 < string2");
printf( "Continue - ENTER, next step
Ctrl+z: ");
} while ((cl=getchar())!=eof);
do {
char s4[maxline];
char v4[maxline];
printf( "\n\nEnter string1 for
strcat(): ");
getline(s4,maxline);
printf( "Enter string2 for strcat():
");
getline(v4,maxline);
printf( "strcat value=%s\n",strcat(s4,v4));
printf( "Continue - ENTER, next step
Ctrl+z: ");
} while ((cl=getchar())!=eof);
printf( "Press any key to continue");
_getch();
return 0;
} |
Вот что выдаст нам эта программа:
|