c語言代碼翻譯器,c語言開發一個翻譯算法,使用有道翻譯API做翻譯(c語言實現)

 2023-12-25 阅读 28 评论 0

摘要:http://fanyi.youdao.com/openapi.do?keyfrom=&key=&type=data&doctype=&version=1.1&q=要翻譯的文本參數說明:type - 返回結果的類型,固定為datadoctype - 返回結果的數據格式,xml或json或jsonpc語言代碼翻

http://fanyi.youdao.com/openapi.do?keyfrom=&key=&type=data&doctype=&version=1.1&q=要翻譯的文本

參數說明:

type - 返回結果的類型,固定為data

doctype - 返回結果的數據格式,xml或json或jsonp

c語言代碼翻譯器、version - 版本,當前最新版本為1.1

q - 要翻譯的文本,不能超過200個字符,需要使用utf-8編碼

errorCode:

0 - 正常

20 - 要翻譯的文本過長

c語言編程題經典100例,30 - 無法進行有效的翻譯

40 - 不支持的語言類型

50 - 無效的key

我的程序里使用了json格式,并用json-glib做解析,使用curl做get請求,這時有一個問題,那就是curl接收數據的時候是使用回調函數的方式,也就是說我們需要在得到接收到的數據中費點心思,有如下幾個方案

1、將數據保存到文件中,然后再從文件中讀取數據

c語言開發的軟件有哪些,2、創建一個比較大的字符數組作為參數傳遞給回調函數來得到數據

3、使用一個“全局”變量用來存儲數據

4、創建一個字符指針傳遞給回調函數,在回調函數中動態開辟內存保存數據

我使用的方法是第4種,其實第一種方法也是可行的,下面放程序

#include

c語言開發工具,#include

#include

#include "mysock/mysock.h"

#define KEYFROM "你的keyform"

#define KEY "你的key"

快速排序算法c語言?typedef struct

{

char *data;

}DATA; //我們傳遞給回調函數的數據

size_t get_data(char *ptr,size_t size,size_t nmemb,DATA *userdata)

c語言冒泡排序法代碼。{

if(userdata->data) //如果指針非空則動態增加內存

{

char *temp;

int len;

c語言開發的四個步驟。len=strlen(userdata->data);

temp=malloc(len+1);

strncpy(temp,userdata->data,len);

free(userdata->data);

userdata->data=malloc(len+nmemb+1);

c語言經典算法、strncpy(userdata->data,temp,len);

free(temp);

strncat(userdata->data,ptr,nmemb);

userdata->data[len+nmemb]='\0';

}

else

{

userdata->data=malloc(nmemb+1);

strncpy(userdata->data,ptr,nmemb);

userdata->data[nmemb]='\0';

}

return nmemb;

}

void parser_json(char *data) //解析json數據

{

JsonParser *parser;

JsonReader *reader;

g_type_init();

parser=json_parser_new();

json_parser_load_from_data(parser,data,-1,NULL);

reader=json_reader_new(json_parser_get_root(parser));

if(json_reader_read_member(reader,"query"))

{

printf("%s\n",json_reader_get_string_value(reader));

json_reader_end_member(reader);

}

if(json_reader_read_member(reader,"translation"))

{

int count;

int i;

count=json_reader_count_elements(reader);

for(i=0;i != count;++i)

{

json_reader_read_element(reader,i);

printf("%s\n",json_reader_get_string_value(reader));

json_reader_end_element(reader);

}

json_reader_end_member(reader);

}

if(json_reader_read_member(reader,"basic"))

{

int count;

int i;

printf("\n簡單翻譯:\n");

if(json_reader_read_member(reader,"phonetic"))

{

printf("%s\n",json_reader_get_string_value(reader));

json_reader_end_member(reader);

}

else

{

json_reader_end_member(reader);

json_reader_read_member(reader,"basic");

}

json_reader_read_member(reader,"explains");

count=json_reader_count_elements(reader);

for(i=0;i != count;++i)

{

json_reader_read_element(reader,i);

printf("%s\n",json_reader_get_string_value(reader));

json_reader_end_element(reader);

}

json_reader_end_member(reader);

json_reader_end_member(reader);

}

if(json_reader_read_member(reader,"web"))

{

int count;

int i;

int j;

int n;

printf("\n網絡翻譯:\n");

count=json_reader_count_elements(reader);

for(i=0;i != count;++i)

{

json_reader_read_element(reader,i);

json_reader_read_member(reader,"key");

printf("%s\n",json_reader_get_string_value(reader));

json_reader_end_member(reader);

json_reader_read_member(reader,"value");

n=json_reader_count_elements(reader);

for(j=0;j != n;++j)

{

json_reader_read_element(reader,j);

printf("%s\n",json_reader_get_string_value(reader));

json_reader_end_element(reader);

}

json_reader_end_member(reader);

json_reader_end_element(reader);

printf("\n");

}

json_reader_end_member(reader);

}

}

int main(int argc,char **argv)

{

CURL *curl;

char *url;

DATA data;

url=string_add("http://fanyi.youdao.com/openapi.do?keyfrom=%s&key=%s&type=data&doctype=json&version=1.1&q=%s",KEYFROM,KEY,argv[1]);

curl=curl_easy_init();

data.data=NULL;

curl_easy_setopt(curl,CURLOPT_URL,url);

curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,get_data);

curl_easy_setopt(curl,CURLOPT_WRITEDATA,&data); //傳遞接收數據的指針

curl_easy_perform(curl);

free(url);

curl_easy_cleanup(curl);

parser_json(data.data);

free(data.data);

return 0;

}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/194692.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息