Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2012, 23:29   #1
Arrioh
Пользователь
 
Регистрация: 25.03.2012
Сообщений: 60
Печаль Не правильно задал параметры?C++

Здравствуйте. Задание: написать функцию strlen самому. Написал. Пока находится в main - работает. Пытаюсь создать отдельную функцию - не работает. Что-то не так с параметрами? Заранее спасибо.
Цитата:
#include <iostream>
using namespace std;
int strlen(char a[]);


int main()
{


char massiv[1000];

cin.getline(massiv,1000);


cout << strlen(massiv);

}



int strlen(char a[])
{
int x=0;

for(int i=0; i<sizeof(a);i++)
{
int x=0;
if (a[i]=='\0')
break;
x++;

}

return x;
}
Arrioh вне форума Ответить с цитированием
Старый 25.03.2012, 23:33   #2
Крот
Пользователь
 
Регистрация: 15.03.2012
Сообщений: 57
По умолчанию

Цитата:
sizeof(a);
Если не ошибаюсь, этот оператор внутри функции покажет не размер строки, а размер типа данных. В этом случае 1 байт

Внутри цикла еще одна переменная x объявлена. Ее убрать. Потому что она видна только внутри фигурных скобок.

Код:
int strlen(char a[])
{
   int x=0;

   for(int i=0; a[i] != '\0'; i++)
     x++;

   return x;
}

Последний раз редактировалось Крот; 25.03.2012 в 23:42.
Крот вне форума Ответить с цитированием
Старый 25.03.2012, 23:53   #3
Arrioh
Пользователь
 
Регистрация: 25.03.2012
Сообщений: 60
По умолчанию

Работает. Спасибо Вам.
Arrioh вне форума Ответить с цитированием
Старый 25.03.2012, 23:59   #4
Крот
Пользователь
 
Регистрация: 15.03.2012
Сообщений: 57
По умолчанию

Я там немного понапутал. sizeof(a) внутри функции покажет 4. При любых строках.
Наверно это связано с адресами.
Крот вне форума Ответить с цитированием
Старый 26.03.2012, 00:06   #5
Arrioh
Пользователь
 
Регистрация: 25.03.2012
Сообщений: 60
По умолчанию

Да. как раз проверял. Но сути дела не меняет) Ваш код заработал.
Arrioh вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Препод задал по Паскалю!!! HAMA Помощь студентам 4 23.12.2011 12:52
ПАРАМЕТРЫ-КОНСТАНТЫ, НЕТИПИЗИРОВАННЫЕ ПАРАМЕТРЫ ПОДПРОГРАММ, МАССИВЫ И СТРОКИ ОТКРЫТОГО ТИПА Юрий62 Помощь студентам 1 04.12.2011 14:09
ПАРАМЕТРЫ-КОНСТАНТЫ, НЕТИПИЗИРОВАННЫЕ ПАРАМЕТРЫ ПОДПРОГРАММ, МАССИВЫ И СТРОКИ ОТКРЫТОГО ТИПА Kira09 Паскаль, Turbo Pascal, PascalABC.NET 0 19.12.2010 17:28
WSH: Как правильно передать параметры коммандной строки? voam JavaScript, Ajax 4 12.12.2009 15:16