Error C2065 необъявленный идентификатор - C (СИ) (150964)
Формулировка задачи:
Компилятор пишет что i,pos; cc; -------error C2065 необъявленный идентификатор
Хотя все обозначил.
Листинг программы
- char* insert_char(char *str)
- {
- int i,pos;
- char cc;
- str = realloc(str,strlen(str)+1);
- if (str==NULL){
- printf("No Memory");
- return NULL;}
- printf("The Original String is :\n");
- present(str);
- _flushall(cc);
- printf("Please enter a char pos [0 , %d]: \n",strlen(str));
- scanf("%1c %d",&cc, &pos);
- if( pos < 0 || pos > strlen(str)){
- printf("An illigal location\n");
- return 0;}
- else{
- for( i=strlen(str)+1; i > pos; --i )
- str[i]=str[i-1];
- str[i]=cc;
- printf("The New String is :\n");
- present(str);
- return str;
- }
- }
Решение задачи: «Error C2065 необъявленный идентификатор»
textual
Листинг программы
- for( i=strlen(str)+1; i > pos; --i )
- * * * * str[i]=str[i-1];
Объяснение кода листинга программы
В данном коде выполняется копирование строки, при этом в цикле происходит перестановка символов в строке.
- В первой строке объявляется переменная
i
типа int, которая инициализируется значениемstrlen(str)+1
. Здесьstr
— это указатель на строку, аstrlen(str)
— это функция, которая возвращает длину строки. То есть,i
становится большим значением, равным длине строки плюс один. - Вторая строка содержит условие для цикла while:
i > pos
. Здесьpos
— это также значение типа int, но оно инициализируется значением 0. То есть, цикл будет выполняться до тех пор, пока значениеi
больше значенияpos
. - Третья строка содержит оператор
--i
, который уменьшает значениеi
на единицу после каждой итерации цикла. - В цикле выполняется операция
str[i]=str[i-1]
, которая переставляет символы в строке. Здесьstr
— это указатель на строку, аi
иi-1
— это индексы символов в этой строке. Таким образом, в результате выполнения данного кода, строка будет копирована, при этом последний символ исходной строки останется неизменным.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д