Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr sbarca ufficialmente in Italia con tre modelli elettrici premium, X, 7X e 001, distribuiti da Jameel Motors su una rete di 52 punti vendita già attivi. La Zeekr X parte da 39.900 euro, la 7X da 54.100: piattaforma a 800V, chip Snapdragon di ultima generazione, ricarica ultraveloce e un'autonomia dichiarata fino a 615 km WLTP. Le prime consegne sono previste a metà aprile
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-12-2009, 19:00   #1
giggikr
Member
 
Iscritto dal: Mar 2006
Messaggi: 133
[C] minuscole in maiuscole!!!

ciao ragazzi, per esercizio sto cercando di far un programmino semplice..senza funzioni, che riesca a convertire una stringa di minuscole in lettere maiuscole:

il problema è che se inserisco una frase con spazio, esempio ciao bella
mi da in output solo CIAO cioè si blocca allo spazio!!!
quale è il problema?

ecco il codice:
Codice PHP:
/* programma che converte una stringa minuscola in una stringa maiuscola */
#include <stdio.h>

int main()
{
    
char str[100];
    
int i,cont 0;

scanf("%s"str);
       

//creo la f strlen che conta quanto è lunga la stringa

for ( str[i] != '\0' i++)
        
cont++;



0;

if( 
    for( 
cont i++)
    
    
str[i] = str[i]-32;

printf("%s\n"str);


return 
0;

giggikr è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2009, 19:07   #2
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2788
Perché scanf si ferma quando incontra un carattere "whitespace". Per leggere l'intera riga inserita puoi usare gets: LINK
Nota quello che c'è scritto nella descrizione nel link che ti ho riportato: sarebbe più sicuro utilizzare fgets con parametro stdin perché puoi specificare un massimo di caratteri da leggere e l'altra differenza (che non lo rende più sicuro ma è una differenza) è che fgets include il carattere di newline (\n) mentre gets no.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2009, 20:08   #3
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Meglio imparare a non usare mai gets, ma solo fgets mettendo stdin come ultimo parametro.
http://www.cplusplus.com/reference/c.../cstdio/fgets/

C' un modo semplicissimo per fare quel programma usando getchar e putchar fino a quando non si legge l'invio.

Ultima modifica di cionci : 16-12-2009 alle 09:08.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2009, 20:12   #4
M4rk191
Senior Member
 
L'Avatar di M4rk191
 
Iscritto dal: Sep 2008
Messaggi: 1271
Le funzioni isspace e isalpha fanno al caso tuo. Dovresti sapere che la differenza tra un carattere minuscolo e uno maiuscolo è una costante, puoi usare quella e addizionare/sottrarre a seconda delle esigenze, se non vuoi usare le funzioni della libreria standard.
__________________
MacBook 6,1|2,26 Ghz C2D|2GB 1067 Mhz DDR3|GeForce 9400M|Mac OSX 10.6.2
M4rk191 è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2009, 08:28   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
La costante si può esprimere come 'a' - 'A'
Basta controllare che sia un carattere minuscolo, quindi isalpha ed isspace non gli servono. Se è un carattere minuscolo modifico il carattere.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2009, 12:05   #6
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
format string alternativo per scanf: "%80[^\n]"
il numero 80 indica che la scanf deve leggere al massimo 80 caratteri incluso NUL, quindi l'argomento successivo deve essere un puntatore ad un vettore di 80 char:
Codice:
char szLine[80];
if (scanf("%80[^\n]", szLine) < 1)
{
    // errore di I/O
}
il motivo per cui ne ho messi 80 é che tipicamente i terminali e le consoles hanno righe da 80 caratteri.
fero86 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
Le 10 migliori offerte Amazon di Pasqua:...
Nuove fotografie dagli astronauti di Art...
La toilette della capsula Orion Integrit...
GeForce NOW: ecco tutte le novità in arr...
Il Realme 16 5G debutta sul mercato glob...
HONOR svela tre nuovi tablet: il più int...
Tineco Floor One S9 Master: aspira e pul...
Vivo X300 Ultra, il lancio globale è ini...
Offerte robot aspirapolvere Amazon: ECOV...
L'AI genera codice in 8 minuti e i senio...
Ring Intercom Audio a 44,99€ su Amazon: ...
Apple iPhone 16 crolla a 689€: ecco perc...
Google Pixel 9 a 449,90€ con caricatore ...
Ecco la top 7 delle offerte Amazon, aggi...
Ex ingegnere ammette il sabotaggio: migl...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:15.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v