複数文字列の渡し方 – プログラミング – Home

通知
すべてクリア

[解決済] 複数文字列の渡し方


そる
 そる
(@そる)
ゲスト
結合: 16年前
投稿: 2
Topic starter  

教えてください。
下のPrintLabelって関数に
複数の文字列を渡したいんですが、
下のようにするとprintfでエラーになります。
渡し方が間違ってるのかと思うんですが
どうやるのが正しいやり方でしょうか?
都合でPrintLabelは変更できません。

#include stdafx.h

void PrintLabel(char **label);
int main(int argc, char* argv[])
{
char buf[][256] = {1, 2, NULL};
PrintLabel((char **)buf);
return 0;
}

void PrintLabel(char **label)
{
while (*label) {
printf(%s\n, *label++);
}
}


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

↓可変長引数での例

#include <stdio.h>
#include <stdarg.h>

void print(const char* format, ...) {
const char* arg;
va_list argptr;
va_start(argptr, format);
while ( (arg = va_arg(argptr,const char*)) != NULL ) {
printf(format,arg);
}
va_end(argptr);
}

int main() {
print([%s] , one, two, NULL);
return 0;
}


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> 都合でPrintLabelは変更できません。

おっとっと。

#include <stdio.h>

void PrintLabel(char **label)
{
while (*label) {
printf(%s\n, *label++);
}
}

int main() {
char* labels[] = { one, two, NULL };
PrintLabel(labels);
return 0;
}


返信引用
そる
 そる
(@そる)
ゲスト
結合: 16年前
投稿: 2
Topic starter  

ありがとうございます。
おかげさまでうまく行きました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました