Это определение strlen, которое я вытащил.
Функция strlen () подсчитывает количество символов в заданной строке и возвращает целочисленное значение. Останавливает счет персонажа, когда найден нулевой символ.
Теперь, по моему мнению, strlen для "kshitij" должен быть = 7, т.е. не включая нулевой символ, потому что функция перестает считать, как и когда она встречает нулевой символ.
Поэтому, если я хочу напечатать слово "kshitij" и его обратное столько раз, сколько букв в слове, тогда правильный код должен быть.
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
char a[1000];
gets(a);
int len=strlen(a);
for(int i=0; i<= len ; i++)
{
for(int j=len ; j>=0; j--)
{
cout<<a[j];
}
cout<<" ";
}
getch();
return 0;
}
соответственно это обеспечивает достаточно правильный вывод. (Кроме пробелов я не понимаю)
Теперь мне было любопытно узнать, что он напечатает, если я это сделаю:
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
char a[1000];
gets(a);
int len=strlen(a);
for(int i=0; i<= len ; i++)
{
for(int j=len -1 ; j>=0; j--)
{
cout<<a[j];
}
cout<<" ";
}
getch();
return 0;
}
который, по моему мнению, не должен давать последнюю букву "j", но я вижу, что она выдает тот же результат, но на 1 интервал меньше, чем раньше.
Точно так же я пытался:
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
char a[1000];
gets(a);
int len=strlen(a);
for(int i=0; i<= len - 1 ; i++)
{
for(int j=len ; j>=0; j--)
{
cout<<a[j];
}
cout<<" ";
}
getch();
return 0;
}
здесь, по моему мнению, выходной результат должен содержать только «7 - 1 = 6» раз обратной строки, но выходной результат почти тот же. -1 не влияет на значение «len».
Имея все это на моем планшете, я чувствую, что функция strlen
также должна считать нулевой символ, то есть strlen (a)= 8
(включая ‘\0’
), но затем я вижу только 7 выходных данных в окне вывода.
Это заставляет меня задуматься о том, считает ли функция strlen нулевой символ или нет, и если да, то она должна показывать его как пробел в окне вывода. Я не могу понять полную концепцию, любая помощь приветствуется?
Я новичок в программировании, пожалуйста, успокойся на мне. Спасибо :).