Sapling Logo

Grammar Checking in C++

C++

C++ is an object-oriented programming language that provides a superset of features of C. It is a popular choice for large programming projects that require the performance characteristics of C but want code organized as classes. Cross-platform applications developed with the Qt framework typically are written in C++.

Sapling: AI Writing Assistant

With Sapling, you can add grammar or spell checking functionality to an existing C++ application.

This page demonstrates a quick way to integrate grammar and spell checking functionality into a C++ application using Sapling's API. If you are not looking for a C++ guide, click here for guides for other programming languages.

Sapling does not currently maintain a C++-specific SDK, but you can access the Sapling Grammar Checking HTTP API using any programming language that supports HTTP POST requests. An example is shown below.

Setup Steps

C++ Grammar Check Quickstart

C++ does not have a standard HTTP or socket library. HTTP POST requests in C++ require an HTTP library like libcurl.

#include <stdio.h>
#include <curl/curl.h>

int main(void) {
      char* jsonObj = "{\"key\":\"<API_KEY>\", \"text\":\"Lets get started!\", \"session_id\":\"Test Document UUID\"}";

      struct curl_slist *headers = NULL;
      curl_slist_append(headers, "Accept: application/json");
      curl_slist_append(headers, "Content-Type: application/json");
      curl_slist_append(headers, "charset: utf-8");

      curl_easy_setopt(curl, CURLOPT_URL, "https://api.sapling.ai/api/v1/edits");

      curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
      curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
      curl_easy_setopt(curl, CURLOPT_POSTFIELDS, jsonObj);
      curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
      curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk);
      curl_easy_setopt(curl, CURLOPT_USERAGENT, "libcrp/0.1");

      res = curl_easy_perform(curl);
}

Returned result:

{
    "edits":[
      {
          "end":4,
          "error_type":"R:OTHER",
          "general_error_type":"Other",
          "id":"aa5ee291-a073-5146-8ebc-c9c899d01278",
          "replacement":"Let's",
          "sentence":"Lets get started!",
          "sentence_start":0,
          "start":0
      }
    ]
}

Documentation

Addtional parameters and Sapling's full API documentation can be accessed here: https://sapling.ai/docs