Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Fgets + stlen() [Problem z liczeniem znaków]
motyl-pl
post
Post #1





Grupa: Zarejestrowani
Postów: 294
Pomógł: 31
Dołączył: 2.04.2010

Ostrzeżenie: (0%)
-----


  1. <?php
  2. final class polowa {
  3. var $wiersz = array();
  4. var $linia = 0;
  5. var $t;
  6.  
  7. function __construct() {
  8. $uchwyt = fopen('tak.txt', 'r');
  9.  
  10. while(!feof($uchwyt)) {
  11. $this->wiersz[$this->linia] = fgets($uchwyt, 1024);
  12. $this->linia++;
  13. }
  14.  
  15. $this->t = $this->wiersz[0];
  16.  
  17. fclose($uchwyt);
  18. }
  19.  
  20. function sprawdzt() {
  21. if($this->t < 1 or $this->t > 100) {
  22. echo "Liczba t jest nie odpowiednia!";
  23. }
  24. }
  25.  
  26.  
  27. function wyswietl() {
  28. for($i=1; $i <= $this->t; $i++) {
  29. $this->sprciag($this->wiersz[$i]);
  30. $caly_wyraz = strlen($this->wiersz[$i]) / 2 ;
  31. $skrocony_wyraz = floor($caly_wyraz);
  32. echo substr($this->wiersz[$i], 0, $skrocony_wyraz)."\n";
  33. }
  34. }
  35.  
  36. function sprciag($wejscie) {
  37. $sprawdz = 2 * strlen($wejscie);
  38. if($sprawdz>1000) {
  39. echo "Ciąg jest za duży";
  40. }
  41. }
  42.  
  43. }
  44.  
  45. $tak = new polowa();
  46. $tak->sprawdzt();
  47. $tak->wyswietl();
  48.  
  49. ?>


tak.txt
Kod
3
pierwszy
lubiec
ktotozrobi


Wejście
W pierwszej linijce wejścia znajduje się jedna liczba całkowita t (1<=t<=100). Każdy wiersz o numerze od 2 do t+1, zawiera ciąg długości 2*k (1<=k<=1000).

Wyjście
Dla każdego przypadku testowego na wyjściu powinien pojawić się ciąg będący pierwszą połową wczytanego ciągu.


Mój problem gdy odczytuje poszczególne wiersze, to strlen jest nie prawidłowe.
Ma ktoś jakiś pomysł ?


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 13:31