dポイントプレゼントキャンペーン実施中!

キーボードから空白類を含まない(長さが32未満の)文字列を1つ入力すると、同じ文字が部分的に連続するときに1文字ずつに詰めていくプログラムを作成せよ。例)aabbbfffuuと入力→abfuとなる。
解答は下記のように書かれていたのですが、prevとは何を意味していて、またなんの略なんでしょうか。わからないので教えてほしいです。
#include <stdio.h>

int main(void) {
char str[32], prev ;
int i, j ;

printf("Input a string (<32): ") ;
scanf("%31s", str) ;

j = 0 ;
prev = '\0' ;
for (i = 0 ; str[i] != '\0' ; i++) {
if (str[i] == prev) {
continue ;
}

str[j] = str[i] ;
j++ ;
prev = str[i] ;
}

str[j] = '\0' ;

printf("newstr: %s\n", str) ;

return 0 ;
}

A 回答 (4件)

https://ejje.weblio.jp/content/prev
previous;previouslyの略語です。
    • good
    • 0

> 解答は下記のように書かれていたのですが、prevとは何を意味していて、またなんの略なんでしょうか。



プログラミングの質問じゃなくって英語の質問ですね。
恐らく、prevはpreviousの略称でしょう。「前の」って意味です。

> 同じ文字が部分的に連続するときに1文字ずつに詰めていく

つまり、今の「走査対象の」文字に対して「その前の文字」って言うつもりなんじゃないですか?
    • good
    • 0

ソースを見ると、2行目に、



char str[32], prev ;

と定義されていますので、charの1バイト。
一文字前の一時保管用のようです。
    • good
    • 0

previous?


よく前のページに飛ぶときなどに使う単語です。
nextに対する語として使う事が多いです。


if (str[i] == prev)
ここでは、前の文字(prev)と今の文字str[i]を比較しています。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!