2012-03-09 48 views
0

スペースまでの文字列を印刷する機能はありますか? 文字列の印刷

char* A = "This is a string." 
print(A+5); 
output: is 

文字で印刷したくありません。

+0

あなたの独自の関数を書く必要があります。 –

+0

新しい文字列は渡されたものと同じ長さです。スペースを見つけるまでchar-by-charを新しい文字列にコピーし、\ 0を書きます。新しい文字列をprintfしてから解放します。 –

+0

「文字で印刷したくない」申し訳ありませんが、すべてのC関数は、ライブラリ関数であるか、あなたによって作成されたもので、文字単位で出力します。これを望まないなら、C言語を使って何も印刷することはできません。 – Lundin

答えて

4

printf("%s", buf)は、ヌル終端文字が見つかるまでbufの文字を出力します。その動作を変更する方法はありません。

文字による文字が印刷されない可能溶液、印刷される文字列を変更して、文字列から最初N文字印刷形式指定子%.*s使用しない:

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 

int main() 
{ 
    char* s = "this is a string"; 
    char* space_ptr = strchr(s, ' '); 

    if (0 != space_ptr) 
    { 
     printf("%.*s\n", space_ptr - s, s); 
    } 
    else 
    { 
     /* No space - print all. */ 
     printf("%s\n", s); 
    } 

    return 0; 
} 

出力を:

この

+0

それは私が考えたことです、ありがとう – Deepak

1

istream_iteratorトークン化空白:

関連する問題