Каква е разликата?
12 отговора
0 прегледа
Каква е разликата?
Моят син се учи да пише програмки.
Каква е разликата между тези две:
#include<iostream>
#include<string.h>
using namespace std;
int main ()
{
char niz[100];
int i;
char a[100];
strcpy(a,"");
char n[1];
strcpy(n," ");
cin.getline(niz,100);
for(i=0;i<strlen(niz);i++)
{
if(niz!=' ')
{n[0]=niz;
strcat(a,n);
}
else {cout<<a<<endl; strcpy(a,"");}
}
cout<<a<<endl;
system("pause");
return 0;
}
и тази:
#include<iostream>
#include<string.h>
using namespace std;
int main ()
{
char niz[100];
int i;
char a[100];
strcpy(a,"");
char n[2];
strcpy(n," ");
cin.getline(niz,100);
for(i=0;i<strlen(niz);i++)
{
if(niz!=' ')
{n[0]=niz;
strcat(a,n);
}
else {cout<<a<<endl; strcpy(a,"");}
}
cout<<a<<endl;
system("pause");
return 0;
}
Разликата е, че първата работи, а втората - не.
Някой може ли да ми обясни защо?
Използван е Dev C++
Каква е разликата между тези две:
#include<iostream>
#include<string.h>
using namespace std;
int main ()
{
char niz[100];
int i;
char a[100];
strcpy(a,"");
char n[1];
strcpy(n," ");
cin.getline(niz,100);
for(i=0;i<strlen(niz);i++)
{
if(niz!=' ')
{n[0]=niz;
strcat(a,n);
}
else {cout<<a<<endl; strcpy(a,"");}
}
cout<<a<<endl;
system("pause");
return 0;
}
и тази:
#include<iostream>
#include<string.h>
using namespace std;
int main ()
{
char niz[100];
int i;
char a[100];
strcpy(a,"");
char n[2];
strcpy(n," ");
cin.getline(niz,100);
for(i=0;i<strlen(niz);i++)
{
if(niz!=' ')
{n[0]=niz;
strcat(a,n);
}
else {cout<<a<<endl; strcpy(a,"");}
}
cout<<a<<endl;
system("pause");
return 0;
}
Разликата е, че първата работи, а втората - не.
Някой може ли да ми обясни защо?
Използван е Dev C++
Редактирано от БM21 на
Re: Каква е разликата?
Черна магия!
Не знам защо не се вижда .
Оригиналният текст е if (niz!=' ') и n[0]=niz
В поста обаче липсва
Най-интересното е, че като го отворя за редактиране се вижда нормално
М-да, пак не се вижда
След niz и на двете места трябва да има средна скоба, след това i и затваряща скоба.
Не знам защо не се вижда .
Оригиналният текст е if (niz!=' ') и n[0]=niz
В поста обаче липсва
Най-интересното е, че като го отворя за редактиране се вижда нормално
М-да, пак не се вижда
След niz и на двете места трябва да има средна скоба, след това i и затваряща скоба.
Редактирано от БM21 на
Re: Каква е разликата?
Пробвай със pre тагове, {pre} преди кода и {/pre} след кода - смени {} със [].
Пример (запазва празните места):
Без Пре тагове:
3 места
2 места...
Пример (запазва празните места):
3 места
2 места...
Без Пре тагове:
3 места
2 места...
Редактирано от naki на
Re: Каква е разликата?
На кои редове е това? Я качи файловете в Tranz.it и дай линк, тука или на лична бележка.
Re: Каква е разликата?
подсказка - натисни бутона италик дето е под текстовото поле за съобщение 
NE SUTOR ULTRA CREPIDAM
NE SUTOR ULTRA CREPIDAM
Re: Каква е разликата?
Хубаво де. Опитах форматиране с {pre} и {/pre}, считай [] вместо {}, ама се тоя - нищо не се получава. Я да пробам тука
Е го - на. Вместо индекса - италик, няма нищо че съм сложил pre
По ми е интересно защо с низ с дължина 1 се дъни, а когато е с по-голяма дължина работи нормално.
Е го - на. Вместо индекса - италик, няма нищо че съм сложил pre
По ми е интересно защо с низ с дължина 1 се дъни, а когато е с по-голяма дължина работи нормално.
Редактирано от БM21 на
Re: Каква е разликата?
Защото единствения низ, който можеш да запишеш в 1 байт е празния низ.
The last good thing written in C was Franz Schubert's Symphony No. 9.
The last good thing written in C was Franz Schubert's Symphony No. 9.
Re: Каква е разликата?
Благодаря!
Ама и аз съм една Червена шапчица
Вярно, че тези тъпи декларации на низове показват не реалния размер , а едно по-малко, а някакви настройки на средата са махнали range check и вместо да гърми - върши глупости при 1.
Ама и аз съм една Червена шапчица
Вярно, че тези тъпи декларации на низове показват не реалния размер , а едно по-малко, а някакви настройки на средата са махнали range check и вместо да гърми - върши глупости при 1.
Re: Каква е разликата?
range check в C++? Забавно.
The last good thing written in C was Franz Schubert's Symphony No. 9.
The last good thing written in C was Franz Schubert's Symphony No. 9.
Re: Каква е разликата?
статичните масиви нямат range check, това е в разрез със идеологията на езика
NE SUTOR ULTRA CREPIDAM
NE SUTOR ULTRA CREPIDAM