回答編集履歴

5

誤記修正

2020/05/17 13:42

投稿

cateye
cateye

スコア6851

test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
  {
64
64
 
65
- const char src[] = "abc &k3e:7=12345&k87e:";
65
+ const char src[] = "abc &k3e:7=123&5&k87e:";
66
66
 
67
67
  char value[16];
68
68
 
@@ -89,3 +89,7 @@
89
89
  }
90
90
 
91
91
  ```
92
+
93
+ usr ~/Project/test % ./a.out
94
+
95
+ 123&5

4

ソース修正

2020/05/17 13:42

投稿

cateye
cateye

スコア6851

test CHANGED
@@ -62,13 +62,17 @@
62
62
 
63
63
  {
64
64
 
65
- const char src[] = "&k3e:7=12345&k87e:";
65
+ const char src[] = "abc &k3e:7=12345&k87e:";
66
66
 
67
- char value[10];
67
+ char value[16];
68
68
 
69
69
 
70
70
 
71
+ const char *sp = strstr(src,"&k3e:7=");
72
+
73
+
74
+
71
- if(sscanf(src, "&k3e:7=%s", value) != 1) {
75
+ if(sscanf(sp, "&k3e:7=%s", value) != 1) {
72
76
 
73
77
  return 1;
74
78
 

3

ソース追記

2020/05/17 13:10

投稿

cateye
cateye

スコア6851

test CHANGED
@@ -49,3 +49,39 @@
49
49
  usr ~/Project/test % echo $?
50
50
 
51
51
  0
52
+
53
+ ```c
54
+
55
+ #include <stdio.h>
56
+
57
+ #include <string.h>
58
+
59
+
60
+
61
+ int main( )
62
+
63
+ {
64
+
65
+ const char src[] = "&k3e:7=12345&k87e:";
66
+
67
+ char value[10];
68
+
69
+
70
+
71
+ if(sscanf(src, "&k3e:7=%s", value) != 1) {
72
+
73
+ return 1;
74
+
75
+ }
76
+
77
+ *strstr(value, "&k87e:") = '\0';
78
+
79
+ puts(value);
80
+
81
+
82
+
83
+ return 0;
84
+
85
+ }
86
+
87
+ ```

2

ソース追記

2020/05/17 13:05

投稿

cateye
cateye

スコア6851

test CHANGED
@@ -3,3 +3,49 @@
3
3
  **自力で解いて**、詰まったら質問に追記して下さい。
4
4
 
5
5
  →[推奨していない質問](https://teratail.com/help/avoid-asking)
6
+
7
+
8
+
9
+ BAをもらっちゃいましたが・・・**こんな方法も有る!**という事で、参考になれば・・・
10
+
11
+ ```c
12
+
13
+ #include <stdio.h>
14
+
15
+ #include <string.h>
16
+
17
+
18
+
19
+ int main( )
20
+
21
+ {
22
+
23
+ const char src[] = "&k3e:7=12345&k87e:";
24
+
25
+ char value[10];
26
+
27
+
28
+
29
+ if(sscanf(src, "&k3e:7=%[^&]&k87e:", value) != 1) {
30
+
31
+ return 1;
32
+
33
+ }
34
+
35
+ puts(value);
36
+
37
+
38
+
39
+ return 0;
40
+
41
+ }
42
+
43
+ ```
44
+
45
+ usr ~/Project/test % ./a.out
46
+
47
+ 12345
48
+
49
+ usr ~/Project/test % echo $?
50
+
51
+ 0

1

誤記修正

2020/05/17 04:08

投稿

cateye
cateye

スコア6851

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