如何在c中使用for循环读取多个字符串

时间:2018-03-28 19:07:37

标签: c

嗨,我刚开始编程,我在阅读多个字符串时遇到问题,任何人都可以帮助我。

  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();
        }
    }
}

2 个答案:

答案 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终结符

保留的字符串长度