Di sini, kami telah mendeklarasikan string 5 karakter.
Anda dapat menginisialisasi string dalam beberapa cara.
Mari kita ambil contoh lain:
char c[5] = "abcde";
Di sini, kami mencoba untuk menetapkan 6 karakter (karakter terakhir adalah '\0'
) ke char
array yang memiliki 5 karakter. Ini buruk dan Anda tidak boleh melakukan ini.
Menetapkan Nilai ke String
Array dan string adalah warga kelas dua di C; mereka tidak mendukung operator penugasan setelah dideklarasikan. Misalnya,
char c[100];
c = "C programming"; // Error! array type is not assignable.
Catatan: Gunakan fungsi strcpy() untuk menyalin string sebagai gantinya.
Baca String dari pengguna
Anda dapat menggunakan scanf()
berfungsi untuk membaca string.
scanf()
fungsi membaca urutan karakter hingga menemukan spasi (spasi, baris baru, tab, dll.).
Contoh 1:scanf() untuk membaca string
#include <stdio.h>
int main()
{
char name[20];
printf("Enter name: ");
scanf("%s", name);
printf("Your name is %s.", name);
return 0;
}
Keluaran
Enter name: Dennis Ritchie
Your name is Dennis.
Meskipun Dennis Ritchie dimasukkan dalam program di atas, hanya "Dennis" disimpan di name rangkaian. Itu karena ada spasi setelah Dennis .
Perhatikan juga bahwa kita telah menggunakan kode name bukannya &name
dengan scanf()
.
scanf("%s", name);
Ini karena nama adalah char
array, dan kita tahu bahwa nama array berubah menjadi pointer di C.
Jadi, nama di scanf()
sudah menunjuk ke alamat elemen pertama dalam string, itulah sebabnya kita tidak perlu menggunakan &
.
Bagaimana cara membaca sebaris teks?
Anda dapat menggunakan fgets()
berfungsi untuk membaca sebaris string. Dan, Anda dapat menggunakan puts()
untuk menampilkan string.
Contoh 2:fgets() dan puts()
#include <stdio.h>
int main()
{
char name[30];
printf("Enter name: ");
fgets(name, sizeof(name), stdin); // read string
printf("Name: ");
puts(name); // display string
return 0;
}
Keluaran
Enter name: Tom Hanks
Name: Tom Hanks
Di sini, kami telah menggunakan fgets()
berfungsi untuk membaca string dari pengguna.
fgets(name, sizeof(name), stdlin); // read string
sizeof(name)
hasil menjadi 30. Oleh karena itu, kita dapat mengambil maksimal 30 karakter sebagai input yang merupakan ukuran name string.
Untuk mencetak string, kami telah menggunakan puts(name);
.
Catatan: gets()
fungsinya juga bisa untuk mengambil input dari pengguna. Namun, itu dihapus dari standar C.
Itu karena gets()
memungkinkan Anda untuk memasukkan panjang karakter apa pun. Oleh karena itu, mungkin ada buffer overflow.
Meneruskan String ke Fungsi
String dapat diteruskan ke fungsi dengan cara yang sama seperti array. Pelajari lebih lanjut tentang meneruskan array ke suatu fungsi.
Contoh 3:Melewati string ke Fungsi
#include <stdio.h>
void displayString(char str[]);
int main()
{
char str[50];
printf("Enter string: ");
fgets(str, sizeof(str), stdin);
displayString(str); // Passing string to a function.
return 0;
}
void displayString(char str[])
{
printf("String Output: ");
puts(str);
}
String dan Pointer
Mirip seperti array, nama string "meluruh" ke pointer. Oleh karena itu, Anda dapat menggunakan pointer untuk memanipulasi elemen string. Kami menyarankan Anda untuk memeriksa C Array dan Pointer sebelum Anda memeriksa contoh ini.
Contoh 4:String dan Pointer
#include <stdio.h>
int main(void) {
char name[] = "Harry Potter";
printf("%c", *name); // Output: H
printf("%c", *(name+1)); // Output: a
printf("%c", *(name+7)); // Output: o
char *namePtr;
namePtr = name;
printf("%c", *namePtr); // Output: H
printf("%c", *(namePtr+1)); // Output: a
printf("%c", *(namePtr+7)); // Output: o
}
Fungsi String yang Umum Digunakan
- strlen() - menghitung panjang string
- strcpy() - menyalin string ke yang lain
- strcmp() - membandingkan dua string
- strcat() - menggabungkan dua string