Gets() ve puts(), stdio.h başlık dosyasında bildirilir. Her iki fonksiyon da dizelerin giriş/çıkış işlemlerinde yer alır.
C alır () işlevi
Gets() işlevi, kullanıcının bazı karakterleri girmesini ve ardından enter tuşunu kullanmasını sağlar. Kullanıcı tarafından girilen tüm karakterler bir karakter dizisinde saklanır. Diziyi bir dize haline getirmek için diziye boş karakter eklenir. Gets(), kullanıcının boşlukla ayrılmış dizeleri girmesine olanak tanır. Kullanıcının girdiği stringi döndürür.
beyan
char[] gets(char[]);
Gets() kullanarak dize okuma
#include void main () { char s[30]; printf('Enter the string? '); gets(s); printf('You entered %s',s); }
Çıktı
Enter the string? javatpoint is the best You entered javatpoint is the best
Gets() fonksiyonunun kullanımı risklidir çünkü herhangi bir diziye bağlı kontrol yapmaz ve yeni satırla (enter) karşılaşılıncaya kadar karakterleri okumaya devam eder. Fgets() kullanılarak önlenebilecek arabellek taşması sorunu vardır. fgets() maksimum karakter sınırından fazlasının okunmamasını sağlar. Aşağıdaki örneği düşünün.
#include void main() { char str[20]; printf('Enter the string? '); fgets(str, 20, stdin); printf('%s', str); }
Çıktı
Enter the string? javatpoint is the best website javatpoint is the b
C puts() işlevi
puts() işlevi, printf() işlevine çok benzer. puts() işlevi, daha önce get() veya scanf() işlevi kullanılarak okunan dizeyi konsolda yazdırmak için kullanılır. puts() işlevi, konsolda yazdırılan karakter sayısını temsil eden bir tamsayı değeri döndürür. Dizeyle birlikte ek bir yeni satır karakteri yazdırdığından, imleci konsoldaki yeni satıra hareket ettirir, puts() tarafından döndürülen tamsayı değeri her zaman dizede bulunan karakter sayısı artı 1'e eşit olacaktır.
beyan
int puts(char[])
Bir dizeyi get() kullanarak okumak ve onu puts() kullanarak konsolda yazdırmak için bir örnek görelim.
#include #include int main(){ char name[50]; printf('Enter your name: '); gets(name); //reads string from user printf('Your name is: '); puts(name); //displays string return 0; }
Çıktı:
Enter your name: Sonoo Jaiswal Your name is: Sonoo Jaiswal