"const char *" нельзя использовать для инициализации сущности типа "char" - C (СИ)

Узнай цену своей работы

Формулировка задачи:

/*
/*
Написать программу, которая показывает реальное время в выбранных 
городах мира. Программа должна уметь просчитывать разницу времени для двух
произвольных городов мира, которые выбрал пользователь.
Должна быть на написана  на чистом C (си).
*/

#include "stdafx.h"
#include <conio.h>
#include < stdio.h >  // Для printf
#include < time.h >   // Для time, ctime
#include <ctime>   
#include <iomanip> 
#include <iostream>
#include <stdlib.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
 
    setlocale(LC_ALL, "Russian");
    char citi[20];
    char citi2[20];
    int hour1, hour2, hour3,i;
 
    time_t rawtime;
    struct tm * ptm;
    time(&rawtime);   // определить текущую дату в секундах
    ptm = gmtime(&rawtime);  // дата и время в формате GMT

    // Переменная для сохранения текущего времени
    long int ttime;
    // Считываем текущее время
    ttime = time(NULL);
    // С помощью функции ctime преобразуем считанное время в
    // локальное, а затем в строку и выводим в консоль.
    printf("Время: %s\n", ctime(&ttime));

    //24 строки города  по 20 символов
    char words[24][20] = {
        //00
        "Исламабад",
        //01
        "Дакка",
        //02
        "Джакарта",
        //03
        "Сингапур",
        / 04
        "Сеул",
        //05
        "Аганья",
        //06
        "Канберра",
        //07
        "Маджуро",
        //08
        "Пагопаго",
        //09
        "Веллингтон",
        //10
        "Анкоридж",
        //11
        "Адамстаун",
        //12
        "Калгари"
        //13
        "Манагуа",
        //14
        "Панама",
        //15
        "Сан-Хуан",
        //16
        "Асунсьон",
        //17
        "Бразилия",
        //18
        "Прая",
        //19
        "Рабат",
        //20
        "Тунис",
        //21
        "Киев",
        //22
        "Москва",
        //23
        "Баку"
    };
    //Вывод массив горов на консоль
    for ( i = 0; i<23; i++)
    {
        printf("Порядковый номер города равен часовому поясу %s\n", words[i]);
    }
    //Введите название города 
    printf("Введите название города  %s\n");
 
    scanf("%s", citi);
 
    printf("Введите название другого города  %s\n");
    scanf("%s", citi2);
    //Поиск в массиве строк
    for (i = 0; i<23; i++)
    {
        if (citi == words[i])
        {
            hour1 = i;
        }
        if (citi2 == words[i])
        {
            hour2 = i;
        }
    }
    //Считаем разницу в часах
    hour3 = abs(hour2 - hour1);
    printf("Разница во времени между обраными городами %d\n", hour3);
 
    //Реальное время для избранных городов
    printf("Реальное время для города  %s\n", citi1);
    printf("%d\n “, (ptm->tm_hour + hour1) % 24, ":", ptm->tm_min;
 
    printf("Реальное время для города  %s\n", citi2);
    printf("%d\n ", (ptm->tm_hour + hour2) % 24, ":", ptm->tm_min);
 
    system("pause");
    return 0;
}

Решение задачи: «"const char *" нельзя использовать для инициализации сущности типа "char"»

textual
Листинг программы
    printf("Время: %s\n", ctime(&rawtime));

Объяснение кода листинга программы

  1. rawtime - это переменная типа time_t, которая содержит время в секундах с начала эпохи (обычно с 00:00:00 1 января 1970 года).
  2. ctime - это функция, которая преобразует время из типа time_t в строку формата 24 часа:минуты:секунды час:минуты:секунды день недели
  3. printf - это функция, которая выводит строку формата на экран
  4. Время: - это часть строки формата, которая выводится на экран
  5. %s - это место в строке формата, которое заменяется на время в переменной ctime(&rawtime)
  6. \n - это символ новой строки, который указывает на переход на новую строку
  7. rawtime - это значение переменной времени, которое передается в функцию ctime
  8. ctime - это функция, которая преобразует время из типа time_t в строку формата 24 часа:минуты:секунды час:минуты:секунды день недели
  9. printf - это функция, которая выводит строку формата на экран
  10. Время: - это часть строки формата, которая выводится на экран
  11. %s - это место в строке формата, которое заменяется на время в переменной ctime(&rawtime)
  12. \n - это символ новой строки, который указывает на переход на новую строку
  13. rawtime - это значение переменной времени, которое передается в функцию ctime
  14. ctime - это функция, которая преобразует время из типа time_t в строку формата 24 часа:минуты:секунды час:минуты:секунды день недели
  15. printf - это функция, которая выводит строку формата на экран
  16. Время: - это часть строки формата, которая выводится на экран
  17. %s - это место в строке формата, которое заменяется на время в переменной ctime(&rawtime)
  18. \n - это символ новой строки, который указывает на переход на новую строку
  19. rawtime - это значение переменной времени, которое передается в функцию ctime
  20. ctime - это функция, которая преобразует время из типа time_t в строку формата 24 часа:минуты:секунды час:минуты:секунды день недели

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.692 из 5
Похожие ответы