Rumah > pembangunan bahagian belakang > C++ > Menyemak sama ada rentetan yang diberikan ialah ulasan

Menyemak sama ada rentetan yang diberikan ialah ulasan

WBOY
Lepaskan: 2023-08-26 12:37:09
ke hadapan
1121 orang telah melayarinya

Menyemak sama ada rentetan yang diberikan ialah ulasan

Dalam pengaturcaraan komputer, komen ialah teks yang ditulis dalam kod sumber tetapi diabaikan oleh pengkompil atau penterjemah. Ia digunakan untuk menyediakan kebolehbacaan kod dengan menerangkan kod dan fungsinya kepada seseorang yang membaca kod selain daripada pengkompil atau penterjemah. Mereka tidak dilaksanakan dan tidak menjejaskan fungsi keseluruhan program; ia hanya memberikan panduan kepada pengaturcara. Setiap bahasa pengaturcaraan mempunyai sintaks yang berbeza untuk menyatakan komen. Berikut adalah beberapa contoh -

  • C/C++ - Dalam C atau C++, ulasan satu baris bermula dengan "//" dan komen berbilang baris disertakan dalam "/*" dan "*/".

// Single-lined comment
/* Multi-
lined
comment */
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Java - Di Java, komen satu baris bermula dengan "//" dan komen berbilang baris disertakan dalam "/*" dan "*/".

// Single-lined comment
/* Multi-
lined
comment */
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Python - Dalam Python, komen satu baris bermula dengan #, dan petikan tiga kali boleh digunakan untuk menulis rentetan berbilang baris tanpa pembolehubah yang ditetapkan.

    < /里>
# Single-lined comment
'''
Multi-
lined
comment
'''
Salin selepas log masuk
  • Javascript - Dalam Javascript, komen satu baris bermula dengan "//" dan komen berbilang baris disertakan dalam "/*" dan "*/".

// Single-lined comment
/* Multi-
lined
comment */
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Pernyataan Masalah

Diberi tali. Menyemak sama ada rentetan ialah ulasan dalam C++.

Contoh 1

Input: ‘/hello world */’
Salin selepas log masuk
Output: FALSE
Salin selepas log masuk

Penjelasan - Rentetan input tidak bermula dengan // dan juga tidak disertakan dengan /* dan */. Jadi rentetan itu bukan ulasan dalam C++.

Contoh 2

Input: ‘//hello world */’
Salin selepas log masuk
Output: TRUE
Salin selepas log masuk
Salin selepas log masuk

Arahan - Rentetan input bermula dengan //. Oleh itu, ia adalah anotasi dalam C++.

Kaedah 1: Komen satu baris

Komen satu baris hanya menjangkau satu baris dan boleh dikenal pasti dalam C++ dengan "//" di hadapan ulasan, iaitu ulasan satu baris dalam C++ sentiasa bermula dengan "//". Jadi, untuk menyemak komen satu baris dalam rentetan yang diberikan, kami mengambil dua aksara pertama dalam rentetan dan semak sama ada ia adalah "//", kemudian rentetan itu boleh dipanggil ulasan baris tunggal tidak kira apa selepas "" //' watak.

pseudokod

procedure isComment (string)
   if string[0] == ‘/’ and string[1] == ‘/’
      ans = TRUE
   end if
   ans = FALSE
end procedure
Salin selepas log masuk

Contoh

Berikut ialah pelaksanaan C++ bagi kaedah di atas.

Dalam program di bawah, kami menyemak dua aksara pertama rentetan input untuk menyemak komen satu baris.

#include <iostream>
#include <string>
using namespace std;
// Function to check if the string is a single-lined comment
bool isComment(string str){    

   // Single-lined comment if first two characters are '/'
   if (str[0] == '/' && str[1] == '/') {
      return true;
   }
   return false;
}
int main(){
   string input = "/hello world */";
   cout << "Input String: "<< input << endl;
   if (isComment(input)) {
      cout << "The input string is a comment." << endl;
   } else {
      cout << "The input string is not a comment." << endl;
   }
   return 0;
}
Salin selepas log masuk

Output

Apabila anda menyusun atur cara di atas, ia akan menghasilkan output berikut -

Input String: /hello world */
The input string is not a comment.
Salin selepas log masuk

Kerumitan masa - O(1), sama seperti dalam fungsi isComment() kita menyemak dua aksara pertama menggunakan indeks yang mengambil masa yang tetap.

Kerumitan ruang - O(1) kerana tiada ruang tambahan digunakan.

Kaedah 2: Komen berbilang baris

Komen berbilang baris merangkumi berbilang baris dan diiktiraf dalam C++ sebagai kurungan "/*" dan "*/". Jadi, untuk menyemak komen berbilang baris dalam rentetan tertentu, kami mengambil dua aksara pertama dalam rentetan dan semak sama ada ia "/*", dan semak dua aksara terakhir dan semak sama ada ia "*/", Kemudian rentetan itu boleh dipanggil komen berbilang baris, apa sahaja antara '/*' dan '*/'.

Input: ‘/* hello world */’
Salin selepas log masuk
Output: TRUE
Salin selepas log masuk
Salin selepas log masuk

Penjelasan - Rentetan input terkandung dalam "/*" dan "*/", jadi ia adalah rentetan dalam C++.

pseudokod

procedure isComment (string)
   n = string.length
   if (string[0] == ‘/’ and string[1] == ‘*’) and (string[n - 1] == ‘/’ and string[n - 2] == ‘*’)
      ans = TRUE
   end if
   ans = FALSE
end procedure
Salin selepas log masuk

Contoh: Pelaksanaan C++

Dalam program di bawah, kami menyemak sama ada rentetan input terkandung antara "/*" dan "*/".

#include <iostream>
#include <string>
using namespace std;

// Function to check for multi-lined comment
bool isComment(string str){
   int n = str.length();
   
   // Multi-lined comment if first two characters are '/*' and last two characters are '*/'
   if ((str[0] == '/' && str[1] == '*') && (str[n-1] == '/' && str[n-2] == '*')) {
      return true;
   }
   return false;
}
int main(){
   string input = "/* hello world */";
   cout << "Input String: " << input << endl;
   if (isComment(input)) {
      cout << "The input string is a comment." << endl;
   } else {
      cout << "The input string is not a comment." << endl;
   }
   return 0;
}
Salin selepas log masuk

Output

Apabila anda menyusun atur cara di atas, ia akan menghasilkan output berikut -

Input String: /* hello world */
The input string is a comment.
Salin selepas log masuk

Kerumitan Masa - O(1), sama seperti dalam fungsi isComment() kami menggunakan pengindeksan yang mengambil masa yang berterusan untuk menyemak dua aksara pertama dan dua aksara terakhir.

Kerumitan ruang - O(1) kerana tiada ruang tambahan digunakan.

Kaedah 3: Komen tunggal dan berbilang baris

Untuk rentetan tertentu, untuk menentukan sama ada ulasan itu adalah ulasan satu baris atau ulasan berbilang baris, kami menggabungkan dua kaedah di atas, dengan ulasan satu baris bermula dengan "//" dan ulasan berbilang baris ialah disertakan dalam "/*" dan "* /"tengah.

Input: ‘/&* hello world */’
Salin selepas log masuk
Output: Not a comment
Salin selepas log masuk

pseudokod

procedure isComment (string)
   n = string.length
   if string[0] == ‘/’ and string[1] == ‘/’
      ans = 1
   else if (string[0] == ‘/’ and string[1] == ‘*’) and (string[n - 1] == ‘/’ and string[n - 2] == ‘*’)
      ans = 2
   end if
   ans = 0
end procedure
Salin selepas log masuk

Contoh: Pelaksanaan C++

Dalam program di bawah, diberi rentetan, kami menyemak sama ada ia adalah ulasan satu baris, ulasan berbilang baris, atau bukan ulasan sama sekali

#include <iostream>
#include <string>
using namespace std;

// FUunction to check if the input string is comment
int isComment(string str){
   int n = str.length();
   
   // SIngle-lined comment if starting with '//'
   if (str[0] == '/' && str[1] == '/') {
      return 1;
   } 
   
   // Multi-lined comment if enclosed in '/*' and '*/'
   else if ((str[0] == '/' && str[1] == '*') && (str[n-1] == '/' && str[n-2] == '*')) {
      return 2;
   }
   
   // Not a comment
   return 0;
}
int main(){
   string input = "// hello world */";
   cout << "Input String: " << input << endl;
   if (isComment(input) == 1) {
      cout << "The input string is a single-lined comment." << endl;
   } 
   else if (isComment(input) == 2) {
      cout << "The input string is a multi-lined comment." << endl;
   } 
   else {
      cout << "The input string is not a comment." << endl;
   }
   return 0;
}
Salin selepas log masuk

Output

Input String: // hello world */
The input string is a single-lined comment.
Salin selepas log masuk

Kerumitan masa - O(1), sama seperti dalam fungsi isComment() kita menyemak penentu ulasan menggunakan indeks yang mengambil masa yang tetap.

Kerumitan ruang - O(1) kerana tiada ruang tambahan digunakan.

Kesimpulan

Untuk meringkaskan, bahasa pengaturcaraan yang berbeza mempunyai sintaks yang berbeza untuk menyatakan komen. Dalam pendekatan di atas, anotasi dalam C atau C++ telah dikenal pasti dengan kerumitan masa dan ruang O(1).

Atas ialah kandungan terperinci Menyemak sama ada rentetan yang diberikan ialah ulasan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan