|
Страници по тази тема: 1 | 2 | (покажи всички)
Тема
|
Каква е разликата?
|
|
Автор |
БM21 (непознат
) |
Публикувано | 22.11.10 20:41 |
|
Моят син се учи да пише програмки.
Каква е разликата между тези две:
#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++
<P ID="edit"><FONT class="small"><EM>Редактирано от БM21 на 22.11.10 22:15.</EM></FONT></P><P ID="edit"><FONT class="small"><EM>Редактирано от БM21 на 22.11.10 22:16.</EM></FONT></P><P ID="edit"><FONT class="small"><EM>Редактирано от БM21 на 22.11.10 23:26.</EM></FONT></P><P ID="edit"><FONT class="small"><EM>Редактирано от БM21 на 22.11.10 23:28.</EM></FONT></P><P ID="edit"><FONT class="small"><EM>Редактирано от БM21 на 22.11.10 23:31.</EM></FONT></P>Редактирано от БM21 на 22.11.10 23:32.
| |
Тема
|
Re: Каква е разликата?
[re: БM21]
|
|
Автор |
Om_ (eyeful) |
Публикувано | 22.11.10 20:57 |
|
Странна работа!
| |
Тема
|
Re: Каква е разликата?
[re: БM21]
|
|
Автор |
БM21 (непознат
) |
Публикувано | 22.11.10 21:56 |
|
Черна магия!
Не знам защо не се вижда .
Оригиналният текст е if (niz!=' ') и n[0]=niz
В поста обаче липсва
Най-интересното е, че като го отворя за редактиране се вижда нормално
М-да, пак не се вижда
<P ID="edit"><FONT class="small"><EM>Редактирано от БM21 на 22.11.10 21:57.</EM></FONT></P>
След niz и на двете места трябва да има средна скоба, след това i и затваряща скоба.Редактирано от БM21 на 22.11.10 21:59.
| |
Тема
|
Re: Каква е разликата?
[re: БM21]
|
|
Автор |
naki (Company PC Guy) |
Публикувано | 22.11.10 22:11 |
|
Пробвай със pre тагове, {pre} преди кода и {/pre} след кода - смени {} със [].
Пример (запазва празните места):
3 места
2 места...
Без Пре тагове:
3 места
2 места...
Редактирано от naki на 22.11.10 22:22.
| |
Тема
|
Re: Каква е разликата?
[re: БM21]
|
|
Автор |
naki (Company PC Guy) |
Публикувано | 22.11.10 22:20 |
|
На кои редове е това? Я качи файловете в Tranz.it и дай линк, тука или на лична бележка.
| |
Тема
|
Re: Каква е разликата?
[re: naki]
|
|
Автор |
БM21 (непознат
) |
Публикувано | 22.11.10 22:38 |
|
Ето линк с текста : http://tranz.it/load.php?id=pxyJflQ23tKJXe45681962
| |
Тема
|
Re: Каква е разликата?
[re: БM21]
|
|
Автор |
zaphod (мракобес) |
Публикувано | 22.11.10 23:20 |
|
подсказка - натисни бутона италик дето е под текстовото поле за съобщение
NE SUTOR ULTRA CREPIDAM
| |
Тема
|
Re: Каква е разликата?
[re: zaphod]
|
|
Автор |
БM21 (непознат
) |
Публикувано | 22.11.10 23:37 |
|
Хубаво де. Опитах форматиране с {pre} и {/pre}, считай [] вместо {}, ама се тоя - нищо не се получава. Я да пробам тука
Е го - на. Вместо индекса - италик, няма нищо че съм сложил pre
По ми е интересно защо с низ с дължина 1 се дъни, а когато е с по-голяма дължина работи нормално.
Редактирано от БM21 на 22.11.10 23:40.
| |
Тема
|
Re: Каква е разликата?
[re: БM21]
|
|
Автор |
| (>[2] /dev/null) |
Публикувано | 23.11.10 00:18 |
|
Защото единствения низ, който можеш да запишеш в 1 байт е празния низ.
The last good thing written in C was Franz Schubert's Symphony No. 9.
| |
Тема
|
Re: Каква е разликата?
[re: |]
|
|
Автор |
БM21 (непознат
) |
Публикувано | 23.11.10 00:31 |
|
Благодаря!
Ама и аз съм една Червена шапчица
Вярно, че тези тъпи декларации на низове показват не реалния размер , а едно по-малко, а някакви настройки на средата са махнали range check и вместо да гърми - върши глупости при 1.
| |
|
Страници по тази тема: 1 | 2 | (покажи всички)
|
|
|