teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

誤記修正

2020/05/17 13:42

投稿

cateye
cateye

スコア6851

answer CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  int main( )
32
32
  {
33
- const char src[] = "abc &k3e:7=12345&k87e:";
33
+ const char src[] = "abc &k3e:7=123&5&k87e:";
34
34
  char value[16];
35
35
 
36
36
  const char *sp = strstr(src,"&k3e:7=");
@@ -43,4 +43,6 @@
43
43
 
44
44
  return 0;
45
45
  }
46
- ```
46
+ ```
47
+ usr ~/Project/test % ./a.out
48
+ 123&5

4

ソース修正

2020/05/17 13:42

投稿

cateye
cateye

スコア6851

answer CHANGED
@@ -30,10 +30,12 @@
30
30
 
31
31
  int main( )
32
32
  {
33
- const char src[] = "&k3e:7=12345&k87e:";
33
+ const char src[] = "abc &k3e:7=12345&k87e:";
34
- char value[10];
34
+ char value[16];
35
35
 
36
+ const char *sp = strstr(src,"&k3e:7=");
37
+
36
- if(sscanf(src, "&k3e:7=%s", value) != 1) {
38
+ if(sscanf(sp, "&k3e:7=%s", value) != 1) {
37
39
  return 1;
38
40
  }
39
41
  *strstr(value, "&k87e:") = '\0';

3

ソース追記

2020/05/17 13:10

投稿

cateye
cateye

スコア6851

answer CHANGED
@@ -23,4 +23,22 @@
23
23
  usr ~/Project/test % ./a.out
24
24
  12345
25
25
  usr ~/Project/test % echo $?
26
- 0
26
+ 0
27
+ ```c
28
+ #include <stdio.h>
29
+ #include <string.h>
30
+
31
+ int main( )
32
+ {
33
+ const char src[] = "&k3e:7=12345&k87e:";
34
+ char value[10];
35
+
36
+ if(sscanf(src, "&k3e:7=%s", value) != 1) {
37
+ return 1;
38
+ }
39
+ *strstr(value, "&k87e:") = '\0';
40
+ puts(value);
41
+
42
+ return 0;
43
+ }
44
+ ```

2

ソース追記

2020/05/17 13:05

投稿

cateye
cateye

スコア6851

answer CHANGED
@@ -1,3 +1,26 @@
1
1
  [C言語関数辞典](http://www.c-tipsref.com/)の、sscanf(),strchr(),strstr()あたりを参考に。
2
2
  **自力で解いて**、詰まったら質問に追記して下さい。
3
- →[推奨していない質問](https://teratail.com/help/avoid-asking)
3
+ →[推奨していない質問](https://teratail.com/help/avoid-asking)
4
+
5
+ BAをもらっちゃいましたが・・・**こんな方法も有る!**という事で、参考になれば・・・
6
+ ```c
7
+ #include <stdio.h>
8
+ #include <string.h>
9
+
10
+ int main( )
11
+ {
12
+ const char src[] = "&k3e:7=12345&k87e:";
13
+ char value[10];
14
+
15
+ if(sscanf(src, "&k3e:7=%[^&]&k87e:", value) != 1) {
16
+ return 1;
17
+ }
18
+ puts(value);
19
+
20
+ return 0;
21
+ }
22
+ ```
23
+ usr ~/Project/test % ./a.out
24
+ 12345
25
+ usr ~/Project/test % echo $?
26
+ 0

1

誤記修正

2020/05/17 04:08

投稿

cateye
cateye

スコア6851

answer CHANGED
@@ -1,3 +1,3 @@
1
1
  [C言語関数辞典](http://www.c-tipsref.com/)の、sscanf(),strchr(),strstr()あたりを参考に。
2
- 自力で解いて、詰まったら質問に追記して下さい。
2
+ **自力で解いて**、詰まったら質問に追記して下さい。
3
3
  →[推奨していない質問](https://teratail.com/help/avoid-asking)