C
1#define _CRT_SECURE_NO_WARNINGS
2#include <stdio.h>
3#include <stdbool.h>
4#include <string.h>
5
6const char* csv_quote(const char* str) {
7 // str が " あるいは , を含むとき全体を " で囲む
8 static char buffer[256];
9 bool quote = strchr(str, '"') || strchr(str, ',');
10 char* p = buffer;
11 if (quote) *p++ = '"';
12 while ( *str ) {
13 if ( *str == '"' ) *p++ = '"'; // " → ""
14 *p++ = *str;
15 ++str;
16 }
17 if (quote) *p++ = '"';
18 *p = '\0';
19 return buffer;
20}
21
22int main() {
23 FILE* fp = fopen("test.csv", "w");
24 fprintf(fp, "%s,", csv_quote("[a,b]"));
25 fprintf(fp, "%s\n", csv_quote("[c,d]"));
26 fclose(fp);
27
28 return 0;
29}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。