Неправильный вывод строки - C (СИ)
Формулировка задачи:
Функция должна получать строку, проверять ее и записывать в переменную. Но при выводе получается что-то не вполне вразумительное. Что не так?
#include <ctype.h> #include <string.h> #include <conio.h> #include <stdlib.h> void entcontrol2(char array[]) { int bl; int i,N; char str[20]; do { scanf("%s",str); bl = 1; for(i=0;i<strlen(str);i++) if(!isalpha(str[i])&&!isspace(str[i])) { printf("Error: wrong name! Use only letters or space.\n"); bl=0; break; } } while (!bl); array = str; } int main() { char temp[20]; entcontrol2(temp); printf("%s", temp); getch(); return 0; }
Решение задачи: «Неправильный вывод строки»
textual
Листинг программы
strcpy(array, str);
Объяснение кода листинга программы
В данном коде происходит копирование строки из одного места в другое с использованием функции strcpy. Вот список действий в порядке их выполнения:
str
- исходная строка, из которой мы хотим скопировать данные.array
- это массив символов, в который мы хотим скопировать данные.- Функция strcpy начинает свою работу.
- Функция strcpy сравнивает первые два символа исходной строки и массива, в который мы хотим скопировать данные.
- Если символы совпадают, то функция продолжает работу, иначе она возвращает управление.
- Процесс повторяется до тех пор, пока не будут сравнены все символы исходной строки.
- Если все символы совпадают, то функция заканчивает свою работу успешно.
- Если хотя бы один символ не совпадает, то функция возвращает управление с ошибкой.
- Результатом работы функции является скопированная строка в массиве
array
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д