掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.23638

質問
投稿者---sam(2005/10/16 07:52:00)


5桁以下の文字(数字を除く)と5桁以下の数字からなる文字列(例えば TARO1970) を入力し(必ず、文字の固まりの次に数字の固まりがあるとして)、これを分解して、文字部分を文字配列へ、数字部分を整数型の変数へ格納したいのですが、どういうふうに書けばよいのでしょうか?

このプログラム(文字(10文字まで)を入力して、その文字をポインタ変数を使って表示)を応用して書きたいのですが・・・。

#include<stdio.h>
#include<malloc.h>
#include<string.h>
int main()
{

int i,len;
char *ptr;


printf("文字列を入力してください\n");
printf("メモリ確保開始\n");
ptr = (char *)malloc(sizeof(char)*100);
printf("メモリ確保終了\n\n");
scanf("%s", ptr);
len = strlen(ptr);


printf("入力された文字----");
for(i=1;i<=len;i++){
printf("%c",*ptr);

ptr++;
}

printf("\nメモリ開放開始\n");
free(ptr);
printf("メモリ開放終了\n");
return 0;
}




この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:質問 23639 KING・王 2005/10/16 08:07:22
<子記事> Re:質問 23644 まきじ 2005/10/16 11:31:15


No.23639

Re:質問
投稿者---KING・王(2005/10/16 08:07:22)


(1)10文字の文字列を文字のみの前半の5文字の文字列と、数字のみの後半5文字の文字列に、
memcpy()を用いて分解する。
(2)後半部分をatol()やstrtol()で数値(long型など)に変換する。

以上でどうでしょうか?


この投稿にコメントする

削除パスワード

No.23644

Re:質問
投稿者---まきじ(2005/10/16 11:31:15)


>5桁以下の文字(数字を除く)と5桁以下の数字からなる文字列(例えば TARO1970) を入力し(必ず、文字の固まりの次に数字の固まりがあるとして)、これを分解して、文字部分を文字配列へ、数字部分を整数型の変数へ格納したい

sscanf(str,"%[^1-9]%d",alpha,&digit);


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧