Другие языки программирования и технологии

Как использоваться строки (strings), как переменные?

Я тут написал код, смысл которого должен быть ясен. Однако он не работает, как это исправить?

#include<stdio.h>
#include<string.h>

int main()
{
int name;

printf("What is your name?\n");
scanf("%s", &name);

printf("Please to meet, %s\n", name);

getch();
return 0;
}

(Я недавно начал осваиваться C программирование, просьба быть по проще)
Си:

#include <stdio.h>
#include <conio.h>

int main() {
    char name[20];
    printf("What is your name?\n");
    scanf("%""19s", &name);
    printf("Please to meet, %s\n", name);
    getch();
    return 0;
}

С++:

#include <iostream>
#include <string>
#include <conio.h>

using namespace std;

int main() {
    string name;
    cout << "What is your name?\n";
    cin >> name;
    cout << "Please to meet, " << name << "\n";
    getch();
    return 0;
}
Анис Соколов
Анис Соколов
60 238
Лучший ответ
int name; // name - число?
scanf("%s", &name); // вводишь как число или как строку?

Если хочешь язык программирования с++, то используй cin и cout http://applib.org/content/vvedenie-v-klass-string
Если же язык С, то строка там:
char name[80]; // статический массив, во тогда на него и можно scanf использовать как ты хотел передавая адрес на эту переменную
Гена Настенко
Гена Настенко
87 199
Переменную name надо объявить как строку, то есть (в C) как массив символов:

char name[100];

При чтении строки, вводимой пользователем, всегда существует опасность того, что будет считано больше символов, чем мы выделили памяти. Поэтому рекомендую всегда ставить ограничение на количество считываемых символов:

scanf("% 99s", name);

Почему 99, а не 100? Потому что требуется один символ для завершающего строку '\0'.
Дмитрий Эндерс
Дмитрий Эндерс
11 998
ты, наверное, осваиваешь его методом проб и ошибок. и в книжку не заглянешь, пока ось не убьёшь? к сожалению, это маловероятно... .
короче,
у тебя name - типа int - это нихуй не строки, а целые числа
должно быть:
string name;
да и, на сколько я помню, scanf под строками понимает массив символов, а точнее, указатель на char.