Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Feuer
73 / 73 / 7
Регистрация: 13.10.2008
Сообщений: 144
#1

Длина C-строки - C++

16.11.2008, 02:14. Просмотров 602. Ответов 2
Метки нет (Все метки)

Столкнулся с такой проблемой: при передаче функции char-массива и нахождения его размера в этой функции результат получается равным 4...
вот пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void f(char *);
void main(){
    char str[61];
    int length = sizeof(str)/sizeof(char);
    cout<<"length in main = "<<length;
    f(str);
    
}
void f(char *str){
    int length = sizeof(str)/sizeof(char);
    cout<<"\nlength in f = "<<length;
}
генерирует:
length in main = 61
length in main = 4
Я понимаю, что просто чего-то не знаю... подскажите, пожалуйста, чего именно?..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2008, 02:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Длина C-строки (C++):

появилась загвоздка с функцией. нужно вывести на экран строку, сост. из звездочек. Длина строки-параметр функциииз звезд. длина строки - - C++
Я видела, что на форуме есть подобные задачи, но ни одно из их решений не работает на моем dev cpp.:( вот вариант решения, но он не...

Если длина введенной строки кратна 4, первую часть строки поменять местами со второй - C++
Если длина введенной строки кратна 4, первую часть строки поменять местами со второй.

Удалить из строки среднюю букву, если длина строки нечётная или две средних в противном случае - C++
Строки. Дана строка S. Удалите из неё среднюю букву, если длина строки нечётная или две средних в противном случае. Формат входных...

Длина строки в С++ - C++
Проблема с программой,дальше мыслей нету никаких. Нужно чтобы программа определяла длину строки(вводишь строку,а программа показывает...

Длина строки в С++ - C++
Здравствуйте, кто может, подскажите, как определить длину строки в С++. Знаю, что в паскале было бы так: c:=lenght(s); А как на С++ не...

Длина строки - C++
У меня задача стоит что бы пользователь ввёл какой-то текст, а потом программа вычислала длину этой стороки. #include &lt;iostream.h&gt; ...

2
XuTPbIu_MuHTAu
Эксперт С++
2226 / 741 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
16.11.2008, 03:32 #2
в ф-ии f у str тип char *,что есть 32-битный указатель,что есть 4 байта.
В ф-ии мейн у str тип char[61]; при передаче параметра происходит переобразование типов(в общем,передается указатель). Соль в том,что мэйн обладает большей информацией ( уже на стадии компиляции) о переменной str. И не стесняется эту инфу использовать. А f - более универсальна,работает с указателем на тип char,а что уж там...на стадии компиляции она не знает,а sizeof подставляется как раз на стадии компиляции.
1
Feuer
73 / 73 / 7
Регистрация: 13.10.2008
Сообщений: 144
16.11.2008, 16:01  [ТС] #3
XuTPbIu_MuHTAu, спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2008, 16:01
Привет! Вот еще темы с ответами:

длина строки - C++
Определить длинну строки, которая введена пользователем.

длина строки - C++
Здравствуйте. Есть такой код. char stroka; char *str=new char ; cout&lt;&lt;str&lt;&lt;&quot; - &quot;&lt;&lt;strlen(str)&lt;&lt;endl&lt;&lt;stroka&lt;&lt;&quot; - ...

Дерево и длина строки - C++
Есть пример дерева , где вычисляется наименьший его элемент. Помогите переписать код , чтобы найти самую короткую строку в дереве,...

Полезная длина строки - C++
#include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; int main () { int wdcount = 0; char str1 = &quot;&quot;; char str2 =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru