嗨,我刚开始编程,我在阅读多个字符串时遇到问题,任何人都可以帮助我。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tracking_order);
if(ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)
{
requestRuntimePermission();
}
else
{
if (checkPlayServices())
{
buildGoogleApiClient();
createLocationRequest();
}
}
displayLocation();
}
private void displayLocation() {
if(ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)
{
requestRuntimePermission();
}
else
{
mLastLocation = LocationServices.fused(null).getLastLocation(mGoogleApiClient);
if (mLastLocation != null)
{
double latitude = mLastLocation.getLatitude();
double longitude = mLastLocation.getLongitude();
LatLng yourLocation = new LatLng(latitude,longitude);
mMap.addMarker(new MarkerOptions().position(yourLocation).title("Tu ubicacion"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(yourLocation));
mMap.animateCamera(CameraUpdateFactory.zoomTo(17.0f));
}
else
{
Toast.makeText(this, "No se pudo obtener ubicacion", Toast.LENGTH_SHORT).show();
}
}
}
答案 0 :(得分:0)
' a'的价值必须是(字符串的总长度)+1并且始终小于数组的最大大小。 在第一个循环中:
scanf("%s",&n[i]);
如果您在输入输入时使用scanf,则需要在每个字母后按[Enter]。 使用getchar()而不是scanf将允许您一次键入整个字符串。 使用它而不是scanf:
n[i]=getchar();
最后,不需要第二个for循环,
printf("%s\n",n);
单独将打印整个字符串。
答案 1 :(得分:0)
您必须定义2-D数组而不仅仅是1-D
char n[number_of_strings][each_string_length]
请注意缓冲区溢出。使用scanf()是不安全的,你应该限制你的字符串长度不超过。
each_string_length-1
C中的字符串有' \ 0' null终止符让编译器将其识别为字符串而不仅仅是字符数组。这就是为什么你应该从字符串长度中减去一个为nul终结符
保留的字符串长度