Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

В результате изменим 1 строку s1 увеличим или создадим новую строку s3




char*sconcat(char *s1,char *s2){

char *new str,temp;

new str = (char*)calloc(slength(s1)+slength(2)+1);

temp= new str;

while(*s1)* temp++=*s1++;

while(*s2)* temp++=*s2++;

return newstr;}

Удалить последний символ строки

Удаление будем делать логически, на последнее место поместим символ с кодом '0'.

Char dellast(char*str)

{ if (str==null) return null;

str[slength(str)-1]=’\0’;

Return str;}

Удаление символов строки void f(char сh,char*s1){

For (int i=0;s1=’\0’; ++i){
if (s1[i]==ch) {
For (int j=i;s1=’\0’; ++j){
s1[j]=s[j+1];}break;}}}

Сегмент данных для хранения констант

Директива #define служит для замены часто использующихся констант,

ключевых слов, операторов или выражений некоторыми идентификаторами.

#define имя_макроса последовательность_символов

Функции стандартной библиотеки для работы со строками string.h

char *strcpy(char *dsk, char *src); \\ из src копирует в dsk

int strcmp(char *s1, char *s2); \\ сравнение строк,

char *strcat (char *s1, char *s2); \\ s2 дописывается к s1

сhar * strchr (char *str,char *substr); \\ возвращает указатель на первое вхождение substr в строке str

Функция strchr() возвращает указатель на местонахождение первого совпадения с символом c в строке s... а если символ не найден, то возвращают NULL.

char *numbers = "01233210";
char *three = strchr(numbers, '3');

int strlen(char *s);-длина строки

char *strtok(char * str, char * delim); \\ разбивает фразу на лексемы

Функция strtok

#include <string.h>

char *strtok(char * str1, const char * str2);

Функция strtok() разбивает строку на лексемы. При каждом вызове возвращает адрес первой лексемы

возвращает указатель на следующую лексему в строке, адресуемой параметром str1. Символы, образующие строку, адресуемую параметром str2, представляют собой разделители, которые определяют лексему. При отсутствии лексемы, подлежащей возврату, возвращается нулевой указатель.

Пример

Эта программа разбивает строку "Травка зеленеет, солнышко блестит" на лексемы, разделителями которых служат пробелы и запятые. В результате получится

Травка|зеленеет|солнышко|блестит

#include <stdio.h>

#include <string.h>

 

int main(void)

{

char *p;

 

p = strtok("Травка зеленеет, солнышко блестит", " ");

printf(p);

do {

p = strtok('\0', ", ");

if(p) printf("|%s", p);

} while(p);

 

return 0;

}

Пример использования массивов указателей

22) Указатели на функции.

Указатели на функции [1] —Функция располагается в памяти по определенному адресу, который можно присвоить указателю в качестве его значения. Адресом функции является ее точка входа. Именно этот адрес используется при вызове функции. Так как указатель хранит адрес функции, то она может быть вызвана с помощью этого указателя. Он позволяет также передавать ее другим функциям в качестве аргумента.

23) Описания в кот. встреч. [],(),* считаются сложными

25) typedef-позволяет задавать новые имена типов. Пример typedef int INT; INT x=5;

Конструкция typedef позволяет задавать новые имена типов.

Tupedef int INT

Т.е теперь типы одинаковы)

Язык C++ вслед за С позволяет писать функции с переменным числом аргументов.
int f(…)
Этот заголовок не вызывает у компилятора ошибок. Такая запись означает, что при определении функции компилятору неизвестны ни количество параметров, ни их типы, и он, естественно, не может ничего проверить. Количество параметров и их типы становятся известными только при вызове функции.

 

Функция sum

Препроцессор

Препроцессор С/С++ — программный инструмент, изменяющий код программы для последующей компиляции и сборки. препроцессор обеспечивает использование стандартного набора возможностей:

· Замена триграфов

??=, ??(, ??) (и других) символами #, [, ]

· Замена комментариев пустыми строками

· Включение файла — #include

· Макроподстановки — #define

· Условная компиляция — #if, #ifdef, #elif, #else, #endif

 

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...